<?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>217153</bug_id>
          
          <creation_ts>2020-09-30 16:16:34 -0700</creation_ts>
          <short_desc>Add basic infrastructure for AudioWorklet</short_desc>
          <delta_ts>2020-10-01 16:22:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</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>
          
          <blocked>217058</blocked>
    
    <blocked>217194</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1693569</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 16:16:34 -0700</bug_when>
    <thetext>Add basic infrastructure for AudioWorklet:
- https://www.w3.org/TR/webaudio/#audioworklet
- https://drafts.css-houdini.org/worklets/#dom-worklet-addmodule</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693596</commentid>
    <comment_count>1</comment_count>
      <attachid>410177</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 17:20:24 -0700</bug_when>
    <thetext>Created attachment 410177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693598</commentid>
    <comment_count>2</comment_count>
      <attachid>410179</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 17:24:38 -0700</bug_when>
    <thetext>Created attachment 410179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693603</commentid>
    <comment_count>3</comment_count>
      <attachid>410182</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 17:41:33 -0700</bug_when>
    <thetext>Created attachment 410182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693605</commentid>
    <comment_count>4</comment_count>
      <attachid>410183</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 17:49:00 -0700</bug_when>
    <thetext>Created attachment 410183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693612</commentid>
    <comment_count>5</comment_count>
      <attachid>410186</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 18:09:58 -0700</bug_when>
    <thetext>Created attachment 410186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693619</commentid>
    <comment_count>6</comment_count>
      <attachid>410189</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 19:00:57 -0700</bug_when>
    <thetext>Created attachment 410189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693630</commentid>
    <comment_count>7</comment_count>
      <attachid>410194</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 19:46:21 -0700</bug_when>
    <thetext>Created attachment 410194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693631</commentid>
    <comment_count>8</comment_count>
      <attachid>410195</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 19:49:10 -0700</bug_when>
    <thetext>Created attachment 410195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693642</commentid>
    <comment_count>9</comment_count>
      <attachid>410198</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-30 20:42:36 -0700</bug_when>
    <thetext>Created attachment 410198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693751</commentid>
    <comment_count>10</comment_count>
      <attachid>410234</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 08:24:18 -0700</bug_when>
    <thetext>Created attachment 410234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693761</commentid>
    <comment_count>11</comment_count>
      <attachid>410236</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 09:07:38 -0700</bug_when>
    <thetext>Created attachment 410236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693770</commentid>
    <comment_count>12</comment_count>
      <attachid>410238</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 09:45:43 -0700</bug_when>
    <thetext>Created attachment 410238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693773</commentid>
    <comment_count>13</comment_count>
      <attachid>410240</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 09:52:18 -0700</bug_when>
    <thetext>Created attachment 410240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693825</commentid>
    <comment_count>14</comment_count>
      <attachid>410240</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-01 12:12:07 -0700</bug_when>
    <thetext>Comment on attachment 410240
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl:31
&gt; +    EnabledAtRuntime=AudioWorklet,

Given that you can&apos;t actually created a AudioWorklet unless this is true, I don&apos;t think this is necessary.

&gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.idl:31
&gt;      Conditional=WEB_AUDIO,
&gt; -    EnabledBySetting=AudioWorklet,
&gt; +    EnabledAtRuntime=AudioWorklet,

Why is this needed? Seems like this should only ever called on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693829</commentid>
    <comment_count>15</comment_count>
      <attachid>410240</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 12:17:52 -0700</bug_when>
    <thetext>Comment on attachment 410240
Patch

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

&gt;&gt; Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl:31
&gt;&gt; +    EnabledAtRuntime=AudioWorklet,
&gt; 
&gt; Given that you can&apos;t actually created a AudioWorklet unless this is true, I don&apos;t think this is necessary.

Oh, I think you are right. If so, I can probably keep using a setting. Let me give it a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693832</commentid>
    <comment_count>16</comment_count>
      <attachid>410258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 12:30:32 -0700</bug_when>
    <thetext>Created attachment 410258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693876</commentid>
    <comment_count>17</comment_count>
      <attachid>410258</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-01 14:19:28 -0700</bug_when>
    <thetext>Comment on attachment 410258
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.cpp:46
&gt; +    auto* document = worklet.document();
&gt; +    auto* frame = document-&gt;frame();
&gt; +    auto jsRuntimeFlags = frame ? frame-&gt;settings().javaScriptRuntimeFlags() : JSC::RuntimeFlags();

You can get settings directly from Document, and it is guaranteed to be non-null.

&gt; Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.h:57
&gt; +    WeakPtr&lt;AudioWorklet&gt; m_worklet;

Is this used?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletThread.cpp:96
&gt; +            scriptController-&gt;scheduleExecutionTermination();
&gt; +            scriptController-&gt;forbidExecution();

What ensures scriptController is non-null here?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletThread.h:48
&gt; +struct WorkletParameters {
&gt; +public:
&gt; +    URL windowURL;
&gt; +    JSC::RuntimeFlags jsRuntimeFlags;
&gt; +
&gt; +    WorkletParameters isolatedCopy() const;
&gt; +};

This should get its own file, also no need for the explicit public:.

&gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:129
&gt; +    // FIXME: We should probably limit the number of threads we create for offline audio.
&gt; +    m_renderThread = Thread::create(&quot;offline renderer&quot;, WTFMove(offThreadRendering), ThreadType::Audio);
&gt;      return { };

Should we be using explicit threads at all here? Seems like a WorkQueue style option might work better (especially if these don&apos;t need to be &quot;realish-time&quot;.

&gt; Source/WebCore/bindings/scripts/preprocess-idls.pl:101
&gt; +$audioWorkletGlobalScopeConstructorsFile = CygwinPathIfNeeded($audioWorkletGlobalScopeConstructorsFile);

If we are going to keep adding new types of global scopes, we really need to work out a better model than this copy and paste silliness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693878</commentid>
    <comment_count>18</comment_count>
      <attachid>410258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 14:27:48 -0700</bug_when>
    <thetext>Comment on attachment 410258
Patch

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

&gt;&gt; Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.cpp:46
&gt;&gt; +    auto jsRuntimeFlags = frame ? frame-&gt;settings().javaScriptRuntimeFlags() : JSC::RuntimeFlags();
&gt; 
&gt; You can get settings directly from Document, and it is guaranteed to be non-null.

Nice, will fix.

&gt;&gt; Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.h:57
&gt;&gt; +    WeakPtr&lt;AudioWorklet&gt; m_worklet;
&gt; 
&gt; Is this used?

Hmm, maybe not yet. I guess I can omit it until it is actually needed.

&gt;&gt; Source/WebCore/Modules/webaudio/AudioWorkletThread.cpp:96
&gt;&gt; +            scriptController-&gt;forbidExecution();
&gt; 
&gt; What ensures scriptController is non-null here?

The AudioWorkletGlobalScope constructs it unconditionally and we literally just constructed the AudioWorkletGlobalScope. The script only gets nulled out when prepareForDestruction() gets called.

&gt;&gt; Source/WebCore/Modules/webaudio/AudioWorkletThread.h:48
&gt;&gt; +};
&gt; 
&gt; This should get its own file, also no need for the explicit public:.

Ok.

&gt;&gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:129
&gt;&gt;      return { };
&gt; 
&gt; Should we be using explicit threads at all here? Seems like a WorkQueue style option might work better (especially if these don&apos;t need to be &quot;realish-time&quot;.

This is pre-existing code so I&apos;d rather not change this at this point. Switching to a WorkQueue would also not be a trivial effort I believe because the WorkQueue&apos;s backing thread can change and we have assertions everywhere to make sure we are on the audio rendering thread.

&gt;&gt; Source/WebCore/bindings/scripts/preprocess-idls.pl:101
&gt;&gt; +$audioWorkletGlobalScopeConstructorsFile = CygwinPathIfNeeded($audioWorkletGlobalScopeConstructorsFile);
&gt; 
&gt; If we are going to keep adding new types of global scopes, we really need to work out a better model than this copy and paste silliness.

Agreed. I did not anticipate we would add so many new ones :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693881</commentid>
    <comment_count>19</comment_count>
      <attachid>410270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 14:43:30 -0700</bug_when>
    <thetext>Created attachment 410270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693883</commentid>
    <comment_count>20</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-01 14:47:48 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #18)
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:129
&gt; &gt;&gt;      return { };
&gt; &gt; 
&gt; &gt; Should we be using explicit threads at all here? Seems like a WorkQueue style option might work better (especially if these don&apos;t need to be &quot;realish-time&quot;.
&gt; 
&gt; This is pre-existing code so I&apos;d rather not change this at this point.
&gt; Switching to a WorkQueue would also not be a trivial effort I believe
&gt; because the WorkQueue&apos;s backing thread can change and we have assertions
&gt; everywhere to make sure we are on the audio rendering thread.
&gt; 

My comment was only in relation to the comment you added, not about making a code change now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693886</commentid>
    <comment_count>21</comment_count>
      <attachid>410258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 14:49:55 -0700</bug_when>
    <thetext>Comment on attachment 410258
Patch

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

&gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:-100
&gt; -    // FIXME: We should probably limit the number of threads we create for offline audio.

I did not add the comment, it was already here. As I said, this is pre-existing code that I moved :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693887</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-01 14:51:30 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #21)
&gt; Comment on attachment 410258 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410258&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:-100
&gt; &gt; -    // FIXME: We should probably limit the number of threads we create for offline audio.
&gt; 
&gt; I did not add the comment, it was already here. As I said, this is
&gt; pre-existing code that I moved :)

Ah, ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693916</commentid>
    <comment_count>23</comment_count>
      <attachid>410270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 16:21:15 -0700</bug_when>
    <thetext>Comment on attachment 410270
Patch

Clearing flags on attachment: 410270

Committed r267859: &lt;https://trac.webkit.org/changeset/267859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693917</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-01 16:21:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693919</commentid>
    <comment_count>25</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-01 16:22:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/69861084&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410177</attachid>
            <date>2020-09-30 17:20:24 -0700</date>
            <delta_ts>2020-09-30 17:24:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930172023.patch</filename>
            <type>text/plain</type>
            <size>153869</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBjNDRmZTVjYzQz
YmEzM2Y3MjA5NDdhMTBlZmVhZTEzMzIyZTNjYy4uZDllMmNiYjVjNzEyMzlmZWNmOTJmY2ZiNmJj
NTc0ZGYzMTgwZTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBFbmFi
bGUgPHdicj4gY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMzJlNWNjYzAxOWQwMDU5MTZjMWE4OWQxODM1
YTJiYWRkMDQ1OTQyLi5kZDM4Njg5MWIxYTFlYzg3MTZiN2NjNjRmNjc2YTdjZjJkYjU4NTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRp
b1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdG8gbWF0Y2ggd2hhdCB3YXMgZG9u
ZSBpbiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSBpcyB1c2VkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RhcnQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFydCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OgorCiAyMDIwLTA5LTMwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY3Nzg4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IDE3ZGFkZmU1MDFkMGUyZjU0NTRkNGE4ZmVkNjJmYWM2ZDkwMWY4M2IuLmFm
MGVmOTc4MDNlYzY4ZjA3Y2M3YmUxYTE1MWY4YTkyODRiM2VjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3Ig
QXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAyMC0w
OS0yOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1ByZWZlcmVu
Y2VzXSBBZG9wdCBzaGFyZWQgcHJlZmVyZW5jZXMgY29uZmlndXJhdGlvbiBhbmQgc2NyaXB0IGlu
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDJjNTMzNzNkNjExZWU1MzQz
YjcxMTdkMGY3OGM2MjU0ZTA3NmU1NTMuLjYwZTVkNzFjMWNjODU2MGRhMzc2MjhlNTgzZmE3MjU1
MDUxMDI4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMC0wOS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHA6CisKIDIwMjAtMDktMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0TGVnYWN5IHNob3VsZCBjYWxsIFBhZ2U6
OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5k
ZXggZjVmMGQxYjVjZTEyNGRiYTcwNjYxOWM1ODBkYWJlOGNiYTg5M2Y5Ny4uYmRjZjc3OWJkYmZk
MDg2OTY2MDMyNTJiZmU3MTIyM2FiNzY0MjMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlh
bWwKQEAgLTgxLDEwICs4MSwxMSBAQCBBc3luY0NsaXBib2FyZEFQSUVuYWJsZWQ6CiAgICAgICAi
UExBVEZPUk0oQ09DT0EpIiA6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUF1ZGlvV29y
a2xldEVuYWJsZWQ6CitBdWRpb1dvcmtsZXRBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1
bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKICAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKKyAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX0FV
RElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVlNDYzNTU0NmY3NmNmOTBlLi4xZmZkYTlk
ZTdiNjRmNDk3MDJkNzNlZTE3ZTE1NjIyMmM0MGM5MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFkY2I2NTE0OGMzNGEz
ODJiZWFiZDkuLmE4ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVkMjdmNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMw
LDYgKzMzMCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNz
aW5nRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvVGltZXN0YW1wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGExM2NlZGM3NDY4MC4u
MzY3OTVlYTQxMzM4ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEsNCArMSw1IEBA
CiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNj
cmlwdC4KKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5z
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3Bl
cnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9DU1NQcm9wZXJ0eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFj
a01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9Xb3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1dvcmtsZXROb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1OTYxZWY3MTE1MzYx
NTdlM2YwYWI2Li4yYzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYyMDYwNmY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Rp
bWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNl
QXVkaW9Db250ZXh0LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJQ0FURURXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydQogU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAog
UEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBJ
RExfRklMRVNfVE1QID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNfRklMRSA9ICQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApAQCAtMTc2OCwxMyAr
MTc3MCwxNCBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoREVESUNBVEVEV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNFUlZJQ0VXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSBcCisgICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RSkKICMKIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRF
Uk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQ
Uk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdf
SURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVk
U291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykK
IAkkKGZvcmVhY2ggZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+JChJRExfRklMRVNf
VE1QKSQoTkwpKQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFO
R1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1p
ZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVw
ZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNl
c0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVj
dG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
KSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBT
KQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5w
bCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFW
QVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1
dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZp
bGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZp
bGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUg
JChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkg
LS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBM
RU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpT
JS5jcHAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVU
RVNfRklMRSkgJChJRExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JN
X0RFRklORV9ERVBFTkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtTWFwLmlkbAppbmRleCA1ZTc1MDg5MDI4ZGFjZmRhMjJlOGY5YTlhNzk2
NjBiOWNhNTk0MDkwLi4yMmMyMDU2ODdlMGY3NzIxYTYwMzk4NGM3YjNlMWQ1MDQ5M2RkNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5p
ZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAg
ICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldEFQSSwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRhYmxlVmFsaWRh
dGlvbiwKIF0gaW50ZXJmYWNlIEF1ZGlvUGFyYW1NYXAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5
MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMuLmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0
NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldC5jcHAKQEAgLTMxLDE1ICszMSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1
ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1JlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigq
bmV3IEF1ZGlvV29ya2xldChkb2N1bWVudCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiB3b3JrbGV0OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xl
dChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitW
ZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7
CisgICAgLy8gV2ViQXVkaW8gdXNlcyBhIHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJu
IHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVk
aW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQoKQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1
ZGlvV29ya2xldDo6cHJveHkoKSBjb25zdAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5w
cm94aWVzKCk7CisgICAgaWYgKHByb3hpZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHBy
b3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1
ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQwNTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRk
NDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaApAQCAtMzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1
YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3Jl
YXRlKCk7CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
CisgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3Vt
ZW50Jik7CisKKyAgICAvLyBXb3JrbGV0LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNj
b3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmlkbAppbmRleCBiYzVlYThmMGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3
Li41NjAzZjc4ZGY2YWIzMmExZWNlYzhmODZmMDI4YzE5MzAxYjJjNDg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsy
OCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0
dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXRBUEks
CiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2Vj
dXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyNjBlMjZmZDE4
ODhhNmU0Yzk1ZTc4OTQ1NjZkOTk3ZjYzNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUg
IkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJl
YWQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZSk7CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCisgICAgOiBXb3JrbGV0R2xvYmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwp
CisgICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Cit9CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUo
KSA9IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlp
bmdUaHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJk
MjMzYWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVj
dCBXb3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7
CisgICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1
bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRl
cnMmKTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFk
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNU
eXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0
dXJuIGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xv
YmFsU2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdiY2MwYTlm
NWU3MDQ5YjU2ODhlNzViNjc4MzVlZDhkMmMzNjUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1B
dWRpb1dvcmtsZXRBUEksCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90
b3R5cGVFeG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RP
blByb3RvdHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJm
YWNlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAv
LyBJbXBsZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjcyMTYxNGJiY2EyYmM5YTA1ZmIwZTk0YmFmMWNlYmI2OGM5M2FhMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJf
QVVESU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1
ZGUgIkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmts
ZXQobWFrZVdlYWtQdHIod29ya2xldCkpCisgICAgLCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3Jr
bGV0VGhyZWFkOjpjcmVhdGUoeyB3b3JrbGV0LmRvY3VtZW50KCktPnVybCgpIH0pKQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dvcmtsZXRUaHJlYWQtPnN0YXJ0KCk7
Cit9CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+QXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBv
c3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7CisgICAgbV93b3JrbGV0VGhyZWFk
LT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1vZGUpOworICAgIHJl
dHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhN2FkZjRm
MjgzODAzYWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAi
V29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldDsKK2NsYXNzIEF1ZGlvV29y
a2xldFRocmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgOiBwdWJsaWMg
V29ya2xldEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSh3b3JrbGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCk7
CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRoZSBtYWluIHRocmVhZCB0byBwb3N0
IHRhc2sgYmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisgICAgYm9vbCBwb3N0VGFza0Zvck1v
ZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNv
bnN0IFN0cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7CisKKyAgICBib29sIGlzQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAg
ICBXZWFrUHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0OworICAgIFJlZjxBdWRpb1dvcmtsZXRU
aHJlYWQ+IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGVQcm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuaWRsCmluZGV4IDU2MjcxNDg2NjNmMDQyMThiMWU1NTA1MTc1YjA0
OTVhNTQ2OTEyMDYuLjZiMGMxYTA2ZTYwMTVhM2Q3YjJjYjZmZmFjNzQ5MmJmNzk0NGQ1YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElP
LAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRp
bWU9QXVkaW9Xb3JrbGV0QVBJLAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVU
b0pTT2JqZWN0LAogICAgIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKaW5kZXgg
YTllMTliNjk1ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5ZjExZjkwNS4uMzM5Yzc2ZjRiMThjMDlm
MjU0MmM3YTk2MWU4MTYwYTdiNDI4OTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKQEAgLTI4
LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVk
QnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xl
dEFQSSwKIF0gZGljdGlvbmFyeSBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyA6IEF1ZGlvTm9kZU9w
dGlvbnMgewogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHMgPSAxOwogICAgIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTc3
ZjM5OTQ0ZjJiZWNiNzY4Yzg5NTZjYWY1ZWVhMmFkODhhMGMwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBA
IC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5j
bHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5oIgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBhcmFtZXRlcnMgV29y
a2xldFBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdvcmts
ZXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVkQ29weSgpCisgICAgfTsK
K30KKworQXVkaW9Xb3JrbGV0VGhyZWFkOjpBdWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xl
dFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycy5p
c29sYXRlZENvcHkoKSkKK3sKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0KCkK
K3sKKyAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEds
b2JhbFNjb3BlTG9jayk7CisKKyAgICBSZWY8VGhyZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0
ZSgiV2ViQ29yZTogQXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsKKyAgICAgICAgd29ya2xldFRocmVh
ZCgpOworICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICAvLyBGb3JjZSB0aGUgVGhyZWFk
IG9iamVjdCB0byBiZSBpbml0aWFsaXplZCBmdWxseSBiZWZvcmUgc3RvcmluZyBpdCB0byBtX3Ro
cmVhZCAoYW5kIGJlY29taW5nIHZpc2libGUgdG8gb3RoZXIgdGhyZWFkcykuCisgICAgV1RGOjpz
dG9yZVN0b3JlRmVuY2UoKTsKKyAgICBtX3RocmVhZCA9IFdURk1vdmUodGhyZWFkKTsKK30KKwor
dm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJlYWQoKQoreworICAgIGF1dG8gcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisjaWYgVVNFKEdMSUIpCisgICAgR1JlZlB0
cjxHTWFpbkNvbnRleHQ+IG1haW5Db250ZXh0ID0gYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25l
dygpKTsKKyAgICBnX21haW5fY29udGV4dF9wdXNoX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0
LmdldCgpKTsKKyNlbmRpZgorCisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENv
bnRyb2xsZXI7CisgICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENy
ZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisgICAgICAgIG1fd29ya2xldEdsb2Jh
bFNjb3BlID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZSgqdGhpcywgbV9wYXJhbWV0
ZXJzKTsKKworICAgICAgICBzY3JpcHRDb250cm9sbGVyID0gbV93b3JrbGV0R2xvYmFsU2NvcGUt
PnNjcmlwdCgpOworCisgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CisgICAg
ICAgICAgICAvLyBUaGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhh
ZCBhIGNoYW5jZSB0byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCisg
ICAgICAgICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKSBjb3VsZG4ndCBiZSBjYWxsZWQgZnJvbSBz
dG9wKCkuCisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5zY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCk7CisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVjdXRp
b24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJ1bkV2ZW50TG9vcCgpOworCisjaWYgVVNF
KEdMSUIpCisgICAgZ19tYWluX2NvbnRleHRfcG9wX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0
LmdldCgpKTsKKyNlbmRpZgorCisgICAgUmVmUHRyPFRocmVhZD4gcHJvdGVjdG9yID0gbV90aHJl
YWQ7CisKKyAgICBBU1NFUlQobV93b3JrbGV0R2xvYmFsU2NvcGUtPmhhc09uZVJlZigpKTsKKwor
ICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gd29ya2xldEdsb2JhbFNjb3BlVG9E
ZWxldGU7CisgICAgeworICAgICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0
byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBjaGFuZ2UgbV93b3JrZXJHbG9iYWxTY29wZQorICAgICAg
ICAvLyB3aGlsZSBXb3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNjZXNzaW5nIGl0LgorICAgICAgICBh
dXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3Bl
TG9jayk7CisKKyAgICAgICAgLy8gRGVsYXkgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBXb3JrZXJH
bG9iYWxTY29wZSBjb250ZXh0IHVudGlsIGFmdGVyIHdlJ3ZlIHVubG9ja2VkIHRoZQorICAgICAg
ICAvLyBtX3RocmVhZENyZWF0aW9uQW5kV29ya2VyR2xvYmFsU2NvcGVNdXRleC4gVGhpcyBpcyBu
ZWVkZWQgYmVjYXVzZSBkZXN0cnVjdGluZyB0aGUKKyAgICAgICAgLy8gY29udGV4dCB3aWxsIHRy
aWdnZXIgdGhlIG1haW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5zdCB1cyB0byBkZWxldGUgdGhlIFdv
cmtlclRocmVhZAorICAgICAgICAvLyBvYmplY3QsIGFuZCB0aGUgV29ya2VyVGhyZWFkIG9iamVj
dCBvd25zIHRoZSBtdXRleCB3ZSBuZWVkIHRvIHVubG9jayBhZnRlciB0aGlzLgorICAgICAgICB3
b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUobV93b3JrbGV0R2xvYmFsU2NvcGUp
OworICAgIH0KKworICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0aGUg
Y29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCisgICAg
Ly8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQsIGJl
Y2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95IHRo
ZW0uCisgICAgd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGUgPSBudWxscHRyOworCisgICAgLy8g
U2VuZCB0aGUgbGFzdCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJlIERlcmVmJ2VkIG9uIHRoZSBtYWlu
IHRocmVhZC4KKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKV0geyB9KTsKKworICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBiZSBh
bHJlYWR5IGRlc3Ryb3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBhY2Nl
c3MgInRoaXMiLgorICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3Jr
bGV0VGhyZWFkOjpydW5FdmVudExvb3AoKQoreworICAgIC8vIERvZXMgbm90IHJldHVybiB1bnRp
bCB0ZXJtaW5hdGVkLgorICAgIG1fcnVuTG9vcC5ydW4obV93b3JrbGV0R2xvYmFsU2NvcGUuZ2V0
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUyNzAyYzk4ZmRmODNmOTc1Mjk0NGE0NTBjOTM0
YWM4NTM3OTQ2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CisKK3N0cnVjdCBX
b3JrbGV0UGFyYW1ldGVycyB7CitwdWJsaWM6CisgICAgVVJMIHdpbmRvd1VSTDsKKworICAgIFdv
cmtsZXRQYXJhbWV0ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKworY2xhc3MgQXVkaW9X
b3JrbGV0VGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRo
cmVhZD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVh
dGUoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAg
IH0KKworICAgIHZvaWQgc3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7
IHJldHVybiBtX3J1bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGhyZWFkLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0
VGhyZWFkKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9v
cCgpOworICAgIHZvaWQgd29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90
aHJlYWQ7CisgICAgV29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRl
cnMgbV9wYXJhbWV0ZXJzOworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93
b3JrbGV0R2xvYmFsU2NvcGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEds
b2JhbFNjb3BlTG9jazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUz
MDMwN2QyMTA5NDRmM2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2Qx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVk
aW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwog
ICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIo
dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3Jr
bGV0OjpjcmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1
bWVudCkpCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRl
KFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7
CiAgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0
ZXIgcGFnZSBuYXZpZ2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpC
YXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFu
bmVscwogICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50
aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0
ZShkb2N1bWVudCkpCiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVk
aWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0
KFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCmluZGV4IDBmMjhlNmI4YWQ3NWQxZmY0Mzhi
Zjg3MGVlZmQwNDU2NTA2NWFhNjUuLmJjZGUyZGQ3NDlhOGM5NzQ3MTllM2YxZTg3NzZjMWY4OThh
YmI3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1
ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNl
QXVkaW9Db250ZXh0LmlkbApAQCAtNDEsNyArNDEsNyBAQAogICAgIC8vIEFsbCBwYW5uaW5nIGlz
IHJlbGF0aXZlIHRvIHRoaXMgbGlzdGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlv
TGlzdGVuZXIgbGlzdGVuZXI7CiAKLSAgICBbU2FtZU9iamVjdCwgU2VjdXJlQ29udGV4dCwgRW5h
YmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1dvcmts
ZXQgYXVkaW9Xb3JrbGV0OworICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFibGVk
QXRSdW50aW1lPUF1ZGlvV29ya2xldEFQSV0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xl
dCBhdWRpb1dvcmtsZXQ7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0U3Rh
dGUgc3RhdGU7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDc1MWRlOTE4Y2UxZGMzNmExYzc5ZTk1MDNj
OTI4ZjRmODlmMDk2YmMuLmFlMzRmZmJhMjNjZGExNmNkOWFhNzQ2MGU3YTg3MmU3OTgyMTNlOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDEwICszMCwxMyBAQAogCiAj
aW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgor
I2luY2x1ZGUgIkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3ku
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAt
OTksMTggKzEwMiwzMCBAQCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZW5hYmxl
SW5wdXQoY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkKQogICAgICAgICAgICAgLy8gUmUtY3Jl
YXRlIGRlc3RpbmF0aW9uLgogICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAg
ICAgICAgICAgY3JlYXRlRGVzdGluYXRpb24oKTsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb24t
PnN0YXJ0KCk7CisgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKK0Z1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpkaXNw
YXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKQoreworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJv
eHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICByZXR1cm4g
W3dvcmtsZXRQcm94eSA9IG1ha2VSZWYoKndvcmtsZXRQcm94eSldKEZ1bmN0aW9uPHZvaWQoKT4m
JiBmdW5jdGlvbikgeworICAgICAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zvck1vZGVU
b1dvcmtsZXRHbG9iYWxTY29wZShbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7
CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAg
fTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiB7CiAgICAgQVNTRVJUKGlz
SW5pdGlhbGl6ZWQoKSk7CiAgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKKyAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
RnVuY3Rpb24oKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE4LDcgKzEzMyw3IEBAIHZv
aWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4m
JiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoaXNJ
bml0aWFsaXplZCgpKQotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBt
X2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAg
ICAgY29udGV4dCgpLnBvc3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApAQCAtMTYzLDcg
KzE3OCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6
c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNoYW5uZWxDCiAgICAgICAgIC8vIFJlLWNyZWF0ZSBk
ZXN0aW5hdGlvbi4KICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVh
dGVEZXN0aW5hdGlvbigpOwotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAg
ICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4
IGVkZTE1MzNjMTY0ODI5Y2YxZTIzYmE5M2MyOWE4ODYzNDIwM2U0ZDIuLjdkNjVlMjVlYjU1NDFh
OTc3NmQ1MDA2ZTE3MmQyMDA1YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApA
QCAtNDcsNiArNDcsOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lk
IGNyZWF0ZURlc3RpbmF0aW9uKCk7CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQo
KT4mJik+IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpOworCiAgICAgdm9pZCBpbml0
aWFsaXplKCkgZmluYWw7CiAgICAgdm9pZCB1bmluaXRpYWxpemUoKSBmaW5hbDsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZpbmFsOwpAQCAtNjEsNyAr
NjMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgZmluYWw7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5h
dGlvbj4gbV9kZXN0aW5hdGlvbjsKICAgICBTdHJpbmcgbV9pbnB1dERldmljZUlkOwogICAgIHVu
c2lnbmVkIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzIHsgMCB9OwogICAgIGZsb2F0IG1fc2FtcGxl
UmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmYWEzMzY1MmVk
YjM3NjNiMzljMWY2YmI0N2Y2YmIyNGZhMDNjNDIwLi41M2I1NTQxM2U5MjYxYjc3MGVmN2FjM2Jh
YWQ2ZDg2ZTBjODI5ZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0zMSw3
ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0
LmgiCiAjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQu
aCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkhS
VEZEYXRhYmFzZUxvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRl
IDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgpAQCAtOTYsOSArOTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBtX3N0YXJ0
ZWRSZW5kZXJpbmcgPSB0cnVlOwogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpOwogCi0gICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjYWxsIGxhenlJbml0aWFsaXplIGhlcmU/
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRo
cmVhZHMgd2UgY3JlYXRlIGZvciBvZmZsaW5lIGF1ZGlvLgotICAgIG1fcmVuZGVyVGhyZWFkID0g
VGhyZWFkOjpjcmVhdGUoIm9mZmxpbmUgcmVuZGVyZXIiLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CisgICAgYXV0byBvZmZUaHJlYWRS
ZW5kZXJpbmcgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyld
KCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gb2ZmbGluZVJlbmRlcigpOwogICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCByZXN1bHQsIGN1cnJlbnRTYW1wbGVGcmFtZSA9
IG1fY3VycmVudFNhbXBsZUZyYW1lLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKV0gewogICAgICAgICAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gZmFsc2U7CkBAIC0xMTQs
NyArMTE1LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICB9KTsKLSAgICB9LCBUaHJlYWRUeXBlOjpBdWRpbyk7CisgICAgfTsKKworICAg
IGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHko
KSkgeworICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2Jh
bFNjb3BlKFtvZmZUaHJlYWRSZW5kZXJpbmcgPSBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyld
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG9mZlRocmVh
ZFJlbmRlcmluZygpOworICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBy
b2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUg
YXVkaW8uCisgICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5k
ZXJlciIsIFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKSwgVGhyZWFkVHlwZTo6QXVkaW8pOwog
ICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTVjYzEwODU1ZDhiYWZlZDdh
NDUzYzRiZTlmNGQ5MmRlMjQ1MzdiYi4uYzdlY2ZkZDE1NWM1MjgwZDU4NTRiZmI1MmJlYmVhMDI4
NGFkYjdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwNSw3ICsyMDUsMTAgQEAgTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlLmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlv
bi5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCitNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKIE1vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2Vy
bmVsLmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcApAQCAtMjU3OSw2
ICsyNTgyLDcgQEAgd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiB3b3JrbGV0
cy9Xb3JrbGV0LmNwcAogd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCiB3b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNw
cAogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCiB4bWwvQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcAogeG1sL0RPTVBhcnNlci5jcHAKQEAgLTI2ODAsNiArMjY4NCw3IEBAIEpT
QXVkaW9UaW1lc3RhbXAuY3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNw
cAogSlNBdWRpb1dvcmtsZXQuY3BwCitKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogSlNB
dWRpb1dvcmtsZXROb2RlLmNwcAogSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAKIEpTQXV0
aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTJkYjNjMjEwY2Vh
Y2U1Mjk5MTg2OGVjYjBjYjczNjM1Y2ZlZDAuLmIwYzI5NzBmNWFjZGY5ZTIzMzBlYmY4ZDdhOTQw
MTJkNWU2MDMzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI0NTEsNiArMjQ1MSwxMCBAQAogCQk4MzNCOUUzMjFGNTA4RDg1
MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAv
KiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNDFGNTA4RDg1
MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJBMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1FbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxl
U3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzNCOUUyQzFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5
LmggKi87IH07CisJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rh
c2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNC
RDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovOyB9OworCQk4
MzNCRDgxODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE2MjUyNEQ0
RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovOyB9OworCQk4MzNCRDgx
RDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE5MjUyNEQ1MUIwMDZF
NzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9OworCQk4MzNCRDgxRTI1MjRE
NTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODFCMjUyNEQ1MUMwMDZFNzJC
MyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovOyB9OwogCQk4MzNEMUM3NjI0RDhE
NTRGMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNEMUM3MzI0RDhENTMzMDBFODEz
REYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi87IH07CiAJCTgzNDA3RkMxMUU4
RDlDMTcwMEUwNDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMg
LyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzNDNEOTg0MjREMERFRTkwMDlBQkQ0OSAvKiBXZWJLaXRP
c2NpbGxhdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM0M0Q5ODEyNEQwREVBOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmgg
Ki87IH07CkBAIC0yNTA4LDYgKzI1MTIsNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUg
LyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVt
RW50cnlDYWxsYmFjay5oICovOyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9N
RmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5OTQ3MDcxRjUwQjYzODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJ
ODM5OTQ3MTAxRjUwQjZGQTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlE
ODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oICovOyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYz
MjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8q
IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKIAkJODM5QTJGMkUxRTIw
NEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2Vi
R0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEw
QzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4
NzYyMDA0REY1MEYgLyogSUlSRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmgg
Ki87IH07CkBAIC0yNTM1LDYgKzI1NDAsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEg
LyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8q
IEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0
cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEg
LyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IH07
CisJCTgzRDZBQUU2MjUyNEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFB
RTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07
CiAJCTgzREI5RTBGMjREQTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1
MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3
MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVh
ZEZpbHRlck9wdGlvbnMuaCAqLzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpT
SFRNTFRpbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0UzNTlBMDFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAq
LzsgfTsKQEAgLTI1NDQsNiArMjU1MCw3IEBACiAJCTgzRkIzMzcxMUY1MDhBNTQwMDk4NkU1NCAv
KiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVt
RGlyZWN0b3J5RW50cnkuaCAqLzsgfTsKIAkJODNGQjMzNzMxRjUwOEE1ODAwOTg2RTU0IC8qIEZp
bGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovOyB9
OwogCQk4M0ZCMzM3NTFGNTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkMxRjUw
OEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODNGQzk5NEIy
NTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5oICovOyB9OwogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0Mg
LyogVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYx
QjYwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50
TW9kaWZpZXJJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODNGRTkwMjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYx
RTMwN0MxQzAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwpAQCAtMTA1Nzgs
NiArMTA1ODUsMTMgQEAKIAkJODMzQjlFMkQxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3Rl
bUZpbGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Zp
bGVTeXN0ZW1GaWxlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNC
OUUyRTFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29y
a2xldFBlbmRpbmdUYXNrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAv
KiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MzNCRDgxQTI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQjI1MjRE
NTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlv
V29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODMzQ0Y3MEYyMERCM0Y1RjAwMTQxQkNDIC8qIEpTUGVyZm9ybWFuY2VPYnNl
cnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Bl
cmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3NTI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MTgsNyBA
QAogCQk4Mzk5NDcwOTFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9N
RmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RP
TUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFG
NTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEy
RjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0
YXRlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRl
VHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhE
MDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSFRNTFdCUkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA3NTIsNiArMTA3NjcsNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyog
SlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4M0Q1MTFGMzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQ
dXNoUHVsbEZJRk8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxG
SUZPLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQy
OEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVy
VHlwZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzREI5RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJpcXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNEQjlFMEQyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTA3OTEsNiArMTA4MDcsOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQg
LyogRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0ZCMzM2RTFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAv
KiBGaWxlU3lzdGVtRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmls
ZVN5c3RlbUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUy
NTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZD
OTk0OTI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvV29ya2xldFRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
M0ZDOTk0QTI1MjU1N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1ZGlvV29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRkU3Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyog
VUlFdmVudEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudElu
aXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcy
MzdDIC8qIFVJRXZlbnRJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5p
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2MSw4IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZF
OEIwMDhCNUI0RSAvKiB0ZXh0ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJ
bmxpbmVDb250ZW50QnJlYWtlci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4
IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYy
OUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMy
QjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZB
RjIxODdDQkQ1MDA0NEUwRjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAg
Ki8sCkBAIC0xNzU1NCw4ICsxNzU3NSw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRF
IC8qIElubGluZUxpbmUuaCAqLywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5s
aW5lTGluZUJveC5jcHAgKi8sCiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGlu
ZUxpbmVCb3guaCAqLywKLQkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29u
dGVudEJyZWFrZXIuY3BwICovLAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxp
bmVDb250ZW50QnJlYWtlci5oICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJ
bmxpbmVMaW5lQnVpbGRlci5jcHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8q
IElubGluZUxpbmVCdWlsZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8q
IElubGluZUxpbmVHZW9tZXRyeS5oICovLApAQCAtMTg3MjAsNiArMTg3MzksOCBAQAogCQkJCTJF
NDM0NjNEMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJ
CQkJMkU0MzQ2M0UwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8s
CiAJCQkJMkU0MzQ2M0YwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8s
CisJCQkJODNENkFBRTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmggKi8sCisJCQkJODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyog
V29ya2VyUmVwb3J0aW5nUHJveHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEg
LyogV29ya2VyUnVuTG9vcC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlclJ1bkxvb3AuaCAqLywKQEAgLTE5NzM4LDggKzE5NzU5LDExIEBACiAJCQkJNEJERUEz
MjYyMTdGRTJGQTAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJE
RUEzMjQyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRC
REVBMzJBMjE4MDEwNzIwMDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJ
CTgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICov
LAogCQkJCTgzQUNEMDEwMjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAog
CQkJCTgzQUNEMDEyMjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJ
CQkJODMzQkQ4MTUyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICov
LAorCQkJCTgzM0JEODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmgg
Ki8sCiAJCQkJNEJERUEzMjkyMTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmNwcCAqLywKIAkJCQk0QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCAqLywKIAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODIsMTggQEAKIAkJCQk4
M0I5ODcwNjI1MjI1RjBFMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5
ODcwMTI1MjI1RjBDMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQy
NTIyNUYwQjAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0
RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNC
RDgxOTI1MjRENTFCMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJ
CQk4M0ZDOTk0NzI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRs
ICovLAorCQkJCTgzM0JEODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5jcHAgKi8sCisJCQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGUuY3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAv
KiBBdWRpb1dvcmtsZXROb2RlLmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGUuaWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAv
KiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5
MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1
NTdFODAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDky
NTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJC
MjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZC
RTI0QTE2MEMxMDA0MjBCMDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJE
MjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDgg
KzMwNDk4LDExIEBACiAJCQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2Rjcw
MEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIy
NTIyNUY3RDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMz
QkQ4MUQyNTI0RDUzMDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlG
MSAvKiBBdWRpb1dvcmtsZXROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1
Rjc2MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzRkM5OTRCMjUyNTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5
IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEy
NDc0ODQxMEFBMTYxRDAwQjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNzcyLDYgKzMxODA2LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJC
RTMgLyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1
NUEwNTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQx
RTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1l
bnRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJ
bmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAs
NyArMzE4MTUsNiBAQAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElu
bGluZUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAv
KiBJbmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0
NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZF
QjQ4MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVS
dW4uaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1OTUsNiArMzQ2MjksOCBAQAogCQkJCTFBQkM3MTA5
MTcwRTVFMUIwMEY5QTlENiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXJPYmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtl
clJlcG9ydGluZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFB
NDRERTAwMzdEMUU2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NDYwOSw3ICszNDY0NSw5IEBACiAJCQkJNEJERUEzMjAyMTdFQzU1RjAwNTJERkNEIC8qIFdvcmts
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCN0Y5QzUyMjE4M0I1RTUwMDFDRUJBMCAvKiBXb3Jr
bGV0Q29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEzMjUyMTdGRTJFNDAw
NTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4
MTgyNTI0RDRGNTAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4M0FDRDAxMzI1MjI5RTEwMDAwRDEyNEUgLyogV29ya2xldE9wdGlvbnMuaCBp
biBIZWFkZXJzICovLAorCQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVu
ZGluZ1Rhc2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0Qg
LyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0
MDk5RTY0OTIwMDU2RTU4MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVh
bUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA2MmIwZDZkNTRhNGYwMDAyZGVlNGJkMmRm
YzdlYzZlZDEzN2Q4NDY4Li5iM2E4ZDViMTNjNDUxMWNmNzg0MjU3NTlkNjA1MTQ4MTExNDkwYzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhBdWRp
b0xpc3RlbmVyKSBcCiAgICAgbWFjcm8oQXVkaW9QYXJhbU1hcCkgXAogICAgIG1hY3JvKEF1ZGlv
V29ya2xldCkgXAorICAgIG1hY3JvKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFj
cm8oQXVkaW9Xb3JrbGV0Tm9kZSkgXAogICAgIG1hY3JvKEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZSkgXAogICAgIG1hY3JvKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEu
Y3BwCmluZGV4IDM4ZGY2Nzc1MmU5MGE2YTJlMDE3NGNmYWZiYzRmODcxZWE4MWMxNGEuLmRhNDZl
ODVjMzQwM2EyZTgwNzYzODIzODI1ZGI4NzQxOWQ3ODFkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJET01HQ091dHB1dENvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJET01J
c29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01CdWlsdGluQ29uc3RydWN0
b3JCYXNlLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKQEAgLTY4LDkgKzY5LDEyIEBAIEpT
Vk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YShWTSYgdm0pCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
PigpKQogI2VuZGlmCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3Bl
KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAj
aWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1BhaW50
V29ya2xldEdsb2JhbFNjb3BlPigpKQotICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRH
bG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTV29ya2xldEdsb2JhbFNj
b3BlPigpKQorI2VuZGlmCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCisgICAgLCBtX2hl
YXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5
cGU6OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigpKQogI2VuZGlmCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFs
aXphdGlvbkdsb2JhbE9iamVjdChKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTSURCU2Vy
aWFsaXphdGlvbkdsb2JhbE9iamVjdD4oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4M2I4MjM0YzMzNWRlZDE0NTBkMTgxM2Zl
ODQyOTdhOTc1ODM4OTUxLi5iODQ0MGU4NzcwZTQ3MjkxZjdlZTIwNjMxOTllYTA1YzNjNGJiMGMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oCkBAIC05OSw5ICs5OSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0
cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29w
ZTsKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlND
OjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNQYWludFdvcmtsZXRHbG9iYWxTY29w
ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBl
Rm9ySlNXb3JrbGV0R2xvYmFsU2NvcGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JK
U0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxs
VHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBkMGE1NDdh
YzU2NzM5ZmRkZTFlNzBlOGVjMTliMmI0ODg1ZWI1NjA5Li5lMzkwMTgwZjU3MWY5ZTFlMzViYzky
M2IxZDc3MWQ0Yjk1Y2VkYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4K
QEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNv
bnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIAotY2xhc3MgV29ya2VyU2Ny
aXB0Q29udHJvbGxlciB7CitjbGFzcyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIDogcHVibGljIFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlKik7CkBAIC02
Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKS9pc0V4ZWN1dGlv
bkZvcmJpZGRlbigpIHRvIGd1YXJkIGFnYWluc3QgcmVlbnRyeSBpbnRvIEpTLgogICAgIC8vIENh
biBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgogICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25U
ZXJtaW5hdGlvbigpOwotICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0Owor
ICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8g
Q2FsbGVkIG9uIFdvcmtlciB0aHJlYWQgd2hlbiBKUyBleGl0cyB3aXRoIHRlcm1pbmF0aW9uIGV4
Y2VwdGlvbiBjYXVzZWQgYnkgZm9yYmlkRXhlY3V0aW9uKCkgcmVxdWVzdCwKICAgICAvLyBvciBi
eSBXb3JrZXIgdGhyZWFkIHRlcm1pbmF0aW9uIGNvZGUgdG8gcHJldmVudCBmdXR1cmUgZW50cnkg
aW50byBKUy4KQEAgLTc5LDExICs4MCwxMSBAQCBwdWJsaWM6CiAKICAgICBKU0M6OlZNJiB2bSgp
IHsgcmV0dXJuICptX3ZtOyB9CiAgICAgCi0gICAgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpOwot
ICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKTsKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNz
KCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOwogCi0gICAgdm9p
ZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlm
aWNhdGlvbkNhbGxiYWNrKTsKLSAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgIHZvaWQg
YWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsK
IAogICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwogICAgIHZvaWQgZGV0
YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxODZkNTBmYjQzN2E1ZTcwMmM1
ZjI3YTZhOTZhMmYxOTc0YjhjYzY4Li5kMGJkZGQ4YmNkN2IzYTI1M2ZkNmYyM2U2ZGJkNWFmZWVi
MTZmMmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtNzc1LDcgKzc3NSw3IEBAIHN1YiBTaG91bGRVc2VHbG9iYWxPYmpl
Y3RQcm90b3R5cGUKIAogICAgICMgRm9yIHdvcmtlcnMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEg
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+
dHlwZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiOwotICAgICMgRm9yIHdvcmtsZXRzLCB0
aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3BlLgorICAgICMgRm9y
IHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3Bl
IG9yIGEgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFj
ZS0+dHlwZS0+bmFtZSBlcSAiV29ya2xldEdsb2JhbFNjb3BlIjsKIAogICAgIHJldHVybiBJc0RP
TUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXggNzRmNjg3M2JmZDVkMmNjY2U2OWFh
NWEzNzAwZDlmNTM5NWY5NjA2Zi4uODQwNDVkMWY1MjE3Y2NkZmUzYjFlYTY5ZTkwMmZhMTgwNjU4
ZTIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9j
ZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9j
ZXNzLWlkbHMucGwKQEAgLTQ3LDYgKzQ3LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAk
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOworbXkgJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlOwogbXkgJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwczsKIG15ICRpZGxBdHRyaWJ1
dGVzRmlsZTsKQEAgLTY5LDYgKzcwLDcgQEAgR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRl
ZmluZXMsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAg
ICAgICAgICAgJ3dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAncGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkcGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlLAorICAgICAgICAgICAnYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAndGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9
PiBcJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdzdXBwbGVt
ZW50YWxNYWtlZmlsZURlcHM9cycgPT4gXCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMsCiAgICAg
ICAgICAgICdpZGxBdHRyaWJ1dGVzRmlsZT1zJyA9PiBcJGlkbEF0dHJpYnV0ZXNGaWxlLApAQCAt
ODMsNiArODUsNyBAQCBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRgogZGllKCdNdXN0IHNwZWNpZnkg
YW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRw
dXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4n
KSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
KTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRhdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0
cHV0IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVz
cyBkZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSB8fCAhZGVmaW5lZCgk
dGVzdEdsb2JhbENvbnRleHROYW1lKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IHRoZSBmaWxlIGxpc3Rp
bmcgYWxsIElETHMgdXNpbmcgLS1pZGxGaWxlTmFtZXNMaXN0LicpIHVubGVzcyBkZWZpbmVkKCRp
ZGxGaWxlTmFtZXNMaXN0KTsKIGRpZSgnTXVzdCBzcGVjaWZ5IElETCBhdHRyaWJ1dGVzIGZpbGUg
dXNpbmcgLS1pZGxBdHRyaWJ1dGVzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkaWRsQXR0cmlidXRl
c0ZpbGUpOwpAQCAtOTUsNiArOTgsNyBAQCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRkZWRpY2F0ZWRXb3JrZQogJHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKTsKKyRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzID0gQ3lnd2luUGF0aElmTmVlZGVk
KCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmluZWQoJHN1cHBsZW1lbnRhbE1ha2Vm
aWxlRGVwcyk7CiAKIG15IEBpZGxGaWxlTmFtZXM7CkBAIC0xMzUsNiArMTM5LDcgQEAgbXkgJGRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CitteSAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9
ICIiOwogCiBteSAkaXNvU3Vic3BhY2VzSGVhZGVyQ29kZSA9IDw8RU5EOwpAQCAtMjM1LDYgKzI0
MCw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFz
aCkgewogICAgICAgICAgICAgICAgICAgICAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFs
Q29udGV4dCBlcSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAgICAgICAgICAkcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOworICAg
ICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICJBdWRpb1dvcmtsZXQiKSB7
CisgICAgICAgICAgICAgICAgICAgICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2Jh
bENvbnRleHQgZXEgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICAg
ICAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKICAg
ICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjUzLDYgKzI2MCw3IEBAIEdlbmVyYXRlUGFydGlh
bEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiLCAkZGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIldvcmtsZXRHbG9iYWxTY29wZSIsICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNDb2RlLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBh
cnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIiwgJHBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlIiwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0
R2xvYmFsQ29udGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKaW5kZXggMTM2ZTRmMTRlY2Zl
NWU0YjlmOWM5NTIwMjc0MzlhNGEzMWQ0OTY0NS4uMjg1ZDU2ZDBjNmUwZTdlYTUxZTZkNDZjOWEz
YzFmOTFhOTdmMmUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50
V29ya2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5j
cHAKQEAgLTU2LDExICs1NiwxOCBAQCBjb25zdCBjaGFyKiBET01DU1NQYWludFdvcmtsZXQ6OnN1
cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4gIkRPTUNTU1BhaW50V29ya2xldCI7CiB9CiAKLXZv
aWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKKy8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb3ZlcnJpZGUgYW5kIHJlbHkg
b24gdGhlIHN0YW5kYXJkLWNvbXBsaWFudCBXb3JrbGV0OjphZGRNb2R1bGUoKSBpbnN0ZWFkLgor
dm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29y
a2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKKyAg
ICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkg
eworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IlRoaXMgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvd25sb2FkIHRoZSBzb3VyY2UgZnJvbSB0aGUgVVJM
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTEzNgot
ICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnRyeUNyZWF0
ZShkb2N1bWVudCwgU2NyaXB0U291cmNlQ29kZShtb2R1bGVVUkwpKTsKKyAgICBhdXRvIG1heWJl
Q29udGV4dCA9IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoKmRvY3VtZW50LCBT
Y3JpcHRTb3VyY2VDb2RlKG1vZHVsZVVSTCkpOwogICAgIGlmIChVTkxJS0VMWSghbWF5YmVDb250
ZXh0KSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBPdXRPZk1lbW9yeUVy
cm9yIH0pOwogICAgICAgICByZXR1cm47CkBAIC03MCw5ICs3NywxNSBAQCB2b2lkIFBhaW50V29y
a2xldDo6YWRkTW9kdWxlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBtb2R1bGVV
UkwsIFdvcmtsZQogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjb250ZXh0LT5wYWludERl
ZmluaXRpb25Mb2NrKCkpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IGNvbnRleHQtPnBhaW50RGVm
aW5pdGlvbk1hcCgpLmtleXMoKSkKLSAgICAgICAgZG9jdW1lbnQuc2V0UGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVGb3JOYW1lKG5hbWUsIG1ha2VSZWYoY29udGV4dC5nZXQoKSkpOworICAgICAgICBk
b2N1bWVudC0+c2V0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVGb3JOYW1lKG5hbWUsIG1ha2VSZWYo
Y29udGV4dC5nZXQoKSkpOwogICAgIHByb21pc2UucmVzb2x2ZSgpOwogfQogCitWZWN0b3I8UmVm
PFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gUGFpbnRXb3JrbGV0OjpjcmVhdGVHbG9iYWxTY29w
ZXMoKQoreworICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIHsg
fTsKK30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
UGFpbnRXb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgK
aW5kZXggYjliMTM4NWJiMDhhM2YxY2VkNGViMmI0MjQwM2RkMTA3ZTVhODRlZS4uMDk0YWU2YzEy
Zjc1MTkzODViYTFhNjJkN2JiMjA0ODIyM2YyYzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NQYWludFdvcmtsZXQuaApAQCAtNDEsMTUgKzQxLDIxIEBAIGNsYXNzIERPTUNTU05hbWVzcGFj
ZTsKIAogY2xhc3MgUGFpbnRXb3JrbGV0IGZpbmFsIDogcHVibGljIFdvcmtsZXQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UGFpbnRXb3JrbGV0PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8
UGFpbnRXb3JrbGV0PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFpbnRXb3JrbGV0KTsKKyAgICAgICAgYXV0byB3b3JrbGV0
ID0gYWRvcHRSZWYoKm5ldyBQYWludFdvcmtsZXQoZG9jdW1lbnQpKTsKKyAgICAgICAgd29ya2xl
dC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiB3b3JrbGV0OwogICAgIH0KIAot
ICAgIHZvaWQgYWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdv
cmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICAv
LyBXb3JrbGV0LgorICAgIHZvaWQgYWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBX
b3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7CisgICAg
VmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3Blcygp
IGZpbmFsOwogCiBwcml2YXRlOgotICAgIFBhaW50V29ya2xldCgpID0gZGVmYXVsdDsKKyAgICBl
eHBsaWNpdCBQYWludFdvcmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6IFdvcmts
ZXQoZG9jdW1lbnQpCisgICAgeyB9CiB9OwogCiBjbGFzcyBET01DU1NQYWludFdvcmtsZXQgZmlu
YWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDJhY2YzZjE4Y2FkYzY4NmIzMWVjM2FkMDViYzU4YTAxYjBlZjM0YWUuLjhl
OWIyMTkwZjhlMmIxYTc0OWQzM2ZiMzJjMTdkMGU5ZmJjZGNlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtODQzOSw3ICs4NDM5LDcgQEAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyJiBEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb24KIFBh
aW50V29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CiAgICAgaWYgKCFt
X3BhaW50V29ya2xldCkKLSAgICAgICAgbV9wYWludFdvcmtsZXQgPSBQYWludFdvcmtsZXQ6OmNy
ZWF0ZSgpOworICAgICAgICBtX3BhaW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCp0
aGlzKTsKICAgICByZXR1cm4gKm1fcGFpbnRXb3JrbGV0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDA2YTNlYzkwNjU1ODI2ZmJjZDkx
YTgzYjY0MWUyN2Y1OWU3NWRlNjAuLjBjY2NjMTE4MTYzZjk0ZTVlZjI1ODcwMmUyMjhiMjFkOWQ2
MmQ1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
CkBAIC0xMjcsNiArMTI3LDExIEBAIHB1YmxpYzoKICAgICBib29sIGNzc1BhaW50aW5nQVBJRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NTUGFpbnRpbmdBUElFbmFibGVkOyB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgdm9pZCBzZXRBdWRpb1dvcmtsZXRBUElFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYXVkaW9Xb3JrbGV0QVBJRW5hYmxlZCA9IGlzRW5hYmxl
ZDsgfQorICAgIGJvb2wgYXVkaW9Xb3JrbGV0QVBJRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YXVkaW9Xb3JrbGV0QVBJRW5hYmxlZDsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1RZUEVE
X09NKQogICAgIHZvaWQgc2V0Q1NTVHlwZWRPTUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9D
U1NUeXBlZE9NRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgY3NzVHlwZWRPTUVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX0NTU1R5cGVkT01FbmFibGVkOyB9CkBAIC0zMDIsNiArMzA3
LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBib29sIG1f
Q1NTUGFpbnRpbmdBUElFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJf
QVVESU8pCisgICAgYm9vbCBtX2F1ZGlvV29ya2xldEFQSUVuYWJsZWQgeyBmYWxzZSB9OworI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogICAgIGJvb2wgbV9DU1NUeXBlZE9NRW5h
YmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNzkwZGI0Yjdl
OTZmYTk2ZGY4OGZkNjc4Y2FlMGM3MmU1MjNhODE5OS4uN2NkNWRmMTBmZmQxMGZmNzNkNDkzYmUx
YzA5YTgxOWQyNDUyNjQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMjU5LDgg
KzI1OSw2IEBAIHByZWZpeGVkV2ViQXVkaW9FbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogbW9k
ZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKLWF1ZGlvV29y
a2xldEVuYWJsZWQ6Ci0gIGluaXRpYWw6IGZhbHNlCiBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiBmdWxsU2NyZWVuRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA0M2Q1NzY1Mjk4YzA2NzkyYzZkZGNlODVjNDJh
MGEzZjU3NWE4NzgzLi45ODUyMDVkYWJhYWI4ZGEzODZmNjU2NGQ4MDk2ZmQyODY1NWMxYTEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zNyw3ICszNyw3IEBA
IHN0cnVjdCBOb3dQbGF5aW5nSW5mbzsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhU3RyYXRl
Z3kgewogcHVibGljOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKKyAgICB2
aXJ0dWFsIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAogICAg
ICAgICBBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkgPSAwOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5k
ZXggZGViNzU3ZGM0NWU1Nzg1ODUyMTdmZDNiZWMwNzEyYjY0NGQ3NTM3NC4uMTYwYzY1NzhlMTVl
ZDVlYTc1MjVkYzc2OGJkNGVmM2ZkYzc0ZjRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaApAQCAtMzAsNiArMzAsNyBAQAogI2RlZmlu
ZSBBdWRpb0Rlc3RpbmF0aW9uX2gKIAogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYv
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsMTYgKzQxLDE2IEBAIGNsYXNzIEF1ZGlvSU9D
YWxsYmFjazsKIC8vIFRoZSBhdWRpbyBoYXJkd2FyZSBwZXJpb2RpY2FsbHkgY2FsbHMgdGhlIEF1
ZGlvSU9DYWxsYmFjayByZW5kZXIoKSBtZXRob2QgYXNraW5nIGl0IHRvIHJlbmRlci9vdXRwdXQg
dGhlIG5leHQgcmVuZGVyIHF1YW50dW0gb2YgYXVkaW8uCiAvLyBJdCBvcHRpb25hbGx5IHdpbGwg
cGFzcyBpbiBsb2NhbC9saXZlIGF1ZGlvIGlucHV0IHdoZW4gaXQgY2FsbHMgcmVuZGVyKCkuCiAK
LWNsYXNzIEF1ZGlvRGVzdGluYXRpb24geworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb0Rlc3RpbmF0aW9uPiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgLy8gUGFzcyBpbiAobnVtYmVyT2ZJbnB1dENo
YW5uZWxzID4gMCkgaWYgbGl2ZS9sb2NhbCBhdWRpbyBpbnB1dCBpcyBkZXNpcmVkLgogICAgIC8v
IFBvcnQtc3BlY2lmaWMgZGV2aWNlIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIGZvciBsaXZl
L2xvY2FsIGlucHV0IHN0cmVhbXMgY2FuIGJlIHBhc3NlZCBpbiB0aGUgaW5wdXREZXZpY2VJZC4K
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVk
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgdmlydHVh
bCB+QXVkaW9EZXN0aW5hdGlvbigpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFy
dCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nKCkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCA3NGFkNjE2ZmE5ZTI1ZGViOTk5Yzk2YjY2N2VkMTQ5
NDcwYmY2ODcyLi5kYTRlNGIyYzhiNjA3MzQ4M2Y5ZmFkYzY3YmFmYmZmZjg2ODVmOWEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgY29uc3RleHByIHNpemVf
dCBmaWZvU2l6ZSA9IDk2ICogQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogCiBD
cmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OmNyZWF0ZU92ZXJyaWRlID0gbnVsbHB0cjsKIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGlu
YXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVk
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0
aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWdu
ZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBG
SVhNRTogbWFrZSB1c2Ugb2YgaW5wdXREZXZpY2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNTUs
NyArNTUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5h
dGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbAogICAgIGlmIChBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlKQogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpjcmVhdGVPdmVycmlkZShjYWxsYmFjaywgc2FtcGxlUmF0ZSk7CiAKLSAgICBhdXRv
IGRlc3RpbmF0aW9uID0gbWFrZVVuaXF1ZTxBdWRpb0Rlc3RpbmF0aW9uQ29jb2E+KGNhbGxiYWNr
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICBhdXRvIGRlc3RpbmF0
aW9uID0gYWRvcHRSZWYoKm5ldyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJhY2ssIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKTsKICAgICBkZXN0aW5hdGlvbi0+Y29uZmln
dXJlKCk7CiAgICAgcmV0dXJuIGRlc3RpbmF0aW9uOwogfQpAQCAtMTAzLDkgKzEwMywxMCBAQCB1
bnNpZ25lZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmZyYW1lc1BlckJ1ZmZlcigpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcmVuZGVyQnVzLT5sZW5ndGgoKTsKIH0KIAotdm9pZCBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnN0YXJ0KCkKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydChGdW5j
dGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkK
IHsKICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0Iik7CisgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVu
aXQpOwogCiAgICAgaWYgKCFyZXN1bHQpCkBAIC0xMTYsNiArMTE3LDcgQEAgdm9pZCBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnN0b3AoKQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6c3RvcCIpOwogICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0
b3AobV9vdXRwdXRVbml0KTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBudWxscHRy
OwogCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHNldElzUGxheWluZyhmYWxzZSk7CkBAIC0x
MjMsNiArMTI1LDcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AoKQogCiB2b2lk
IEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQogewor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9pc1BsYXlpbmdMb2NrKTsKICAgICBpZiAobV9p
c1BsYXlpbmcgPT0gaXNQbGF5aW5nKQogICAgICAgICByZXR1cm47CiAKQEAgLTE3MywxOCArMTc2
LDM4IEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKGNvbnN0IEF1ZGlv
VGltZVN0YW1wKiB0aW1lc3RhbXAsIFVJbnQzMiBuCiAKICAgICAvLyBBc3NvY2lhdGUgdGhlIGRl
c3RpbmF0aW9uIGRhdGEgYXJyYXkgd2l0aCB0aGUgb3V0cHV0IGJ1cyB0aGVuIGZpbGwgdGhlIEZJ
Rk8uCiAgICAgYXNzaWduQXVkaW9CdWZmZXJzVG9CdXMoYnVmZmVycywgbV9vdXRwdXRCdXMuZ2V0
KCksIG51bWJlck9mQnVmZmVycywgbnVtYmVyT2ZGcmFtZXMsIDAsIG51bWJlck9mRnJhbWVzKTsK
LSAgICBzaXplX3QgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8tPnB1bGwobV9vdXRwdXRCdXMucHRy
KCksIG51bWJlck9mRnJhbWVzKTsKKyAgICBzaXplX3QgZnJhbWVzVG9SZW5kZXI7CiAKKyAgICB7
CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9maWZvTG9jayk7CisgICAgICAgIGZy
YW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0cHV0QnVzLnB0cigpLCBudW1iZXJPZkZy
YW1lcyk7CisgICAgfQorCisgICAgLy8gV2hlbiB0aGVyZSBpcyBhIEF1ZGlvV29ya2xldCwgd2Ug
ZG8gcmVuZGVyaW5nIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisgICAgaWYgKG1fZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCkgeworICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVzVG9SZW5kZXJdKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9pc1BsYXlp
bmdMb2NrLCBzdGQ6OnRyeV90b19sb2NrKTsKKyAgICAgICAgICAgIGlmIChsb2NrLm93bnNfbG9j
aygpICYmIG1faXNQbGF5aW5nKQorICAgICAgICAgICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhl
YWQoZnJhbWVzVG9SZW5kZXIpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVu
ZGVyT25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7CisKKyAgICByZXR1cm4gbm9FcnI7
Cit9CisKKy8vIFRoaXMgcnVucyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkIHdoZW4gQXVkaW9X
b3JrbGV0IGlzIGVuYWJsZWQsIG9uIHRoZSBhdWRpbyBkZXZpY2UncyByZW5kZXJpbmcgdGhyZWFk
IG90aGVyd2lzZS4KK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXJPblJlbmRlcmlu
Z1RoZWFkKHNpemVfdCBmcmFtZXNUb1JlbmRlcikKK3sKICAgICBmb3IgKHNpemVfdCBwdXNoZWRG
cmFtZXMgPSAwOyBwdXNoZWRGcmFtZXMgPCBmcmFtZXNUb1JlbmRlcjsgcHVzaGVkRnJhbWVzICs9
IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkgewogICAgICAgICBpZiAobV9yZXNh
bXBsZXIpCiAgICAgICAgICAgICBtX3Jlc2FtcGxlci0+cHJvY2Vzcyh0aGlzLCBtX3JlbmRlckJ1
cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgbV9yZW5kZXJCdXMucHRyKCksIEF1
ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgbV9vdXRwdXRUaW1lc3RhbXApOwogCisg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9maWZvTG9jayk7CiAgICAgICAgIG1fZmlm
by0+cHVzaChtX3JlbmRlckJ1cy5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIG5vRXJyOwog
fQogCiAvLyBEZWZhdWx0T3V0cHV0VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaApp
bmRleCAwMGRkYTJmYjJhMzdiODNmMTBlZmE1MjcxYjE3NjhhODBiNDgxMWVjLi4wODk0ZDYyMWEy
ZjE1MzIyNTEyNzM2NTBiNmU1YTNkM2VjOTk2ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaApA
QCAtNDAsNyArNDAsNyBAQCBjbGFzcyBBdWRpb0J1czsKIGNsYXNzIE11bHRpQ2hhbm5lbFJlc2Ft
cGxlcjsKIGNsYXNzIFB1c2hQdWxsRklGTzsKIAotdXNpbmcgQ3JlYXRlQXVkaW9EZXN0aW5hdGlv
bkNvY29hT3ZlcnJpZGUgPSBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4oKikoQXVk
aW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7Cit1c2luZyBDcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2FPdmVycmlkZSA9IFJlZjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2Fs
bGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogLy8gQW4gQXVkaW9EZXN0aW5hdGlvbiB1c2lu
ZyBDb3JlQXVkaW8ncyBkZWZhdWx0IG91dHB1dCBBdWRpb1VuaXQKIGNsYXNzIEF1ZGlvRGVzdGlu
YXRpb25Db2NvYSA6IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uLCBwdWJsaWMgQXVkaW9Tb3VyY2VQ
cm92aWRlciB7CkBAIC02NSwxMSArNjUsMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBzZXRB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24oQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7
CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZDsKKwogcHJpdmF0ZToKLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCi0gICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7CisgICAgdm9p
ZCByZW5kZXJPblJlbmRlcmluZ1RoZWFkKHNpemVfdCBmcmFtZXNUb1JlbmRlcik7CisKKyAgICBm
cmllbmQgUmVmPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRp
b0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGZsb2F0KTsK
ICAgICAKICAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyLgogICAgIHZvaWQgcHJvdmlkZUlucHV0
KEF1ZGlvQnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgZmluYWw7CkBAIC05MSwxMSArOTUs
MTQgQEAgcHJpdmF0ZToKICAgICAvLyBSZXNvbHZlcyB0aGUgYnVmZmVyIHNpemUgbWlzbWF0Y2gg
YmV0d2VlbiB0aGUgV2ViQXVkaW8gZW5naW5lIGFuZAogICAgIC8vIHRoZSBjYWxsYmFjayBmdW5j
dGlvbiBmcm9tIHRoZSBhY3R1YWwgYXVkaW8gZGV2aWNlLgogICAgIFVuaXF1ZVJlZjxQdXNoUHVs
bEZJRk8+IG1fZmlmbzsKKyAgICBMb2NrIG1fZmlmb0xvY2s7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8TXVsdGlDaGFubmVsUmVzYW1wbGVyPiBtX3Jlc2FtcGxlcjsKICAgICBBdWRpb0lPUG9zaXRp
b24gbV9vdXRwdXRUaW1lc3RhbXA7CiAKICAgICBmbG9hdCBtX2NvbnRleHRTYW1wbGVSYXRlOwor
CisgICAgTG9jayBtX2lzUGxheWluZ0xvY2s7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNl
IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKaW5kZXgg
OGZkZWI2YTI0MjQ4NDljYWMxN2JiZTkwYWFlNzEyYTg5YTI0ZDEwMC4uYTI5MDRmMjZiMDJjNzE3
MGE5NzcyZGE5M2MyZTk2MzY4ZmIwNzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGdib29sZWFuIEF1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICByZXR1
cm4gVFJVRTsKIH0KIAotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydCgpCit2
b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rp
b248dm9pZCgpPiYmKT4mJikKIHsKICAgICBBU1NFUlQobV9hdWRpb1NpbmtBdmFpbGFibGUpOwog
ICAgIGlmICghbV9hdWRpb1NpbmtBdmFpbGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuaAppbmRleCBjZmU2ODkyMDhkMDk2OGE1MWE4YmIxZDFlODdmNmUxOWQwZjIzMTY2
Li5kNTUxMDRjODhjY2JjZGZmZmY5N2M0ZTdhNDk0OTg2Zjk5NmJmOGVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgcHVibGljOgogICAg
IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxl
UmF0ZSk7CiAgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpOwogCi0gICAg
dm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5j
dGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIG92ZXJyaWRlOwogICAg
IHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7
IHJldHVybiBtX2lzUGxheWluZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggOWRhYTdkMDE0
MWQ4MTA0ZTRmNWM0YzI2NDhiYzhjNmJlNTI2YzBjOC4uNWExMmNkZTRmY2RmYzU3ZmFkNDJiN2Q5
ZThmZTczMjA0MzUwOWQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00NSw4ICs0NSw5IEBA
IE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6Ok1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKIAogTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6fk1v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgTW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9pZCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpz
dGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCkKIHsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIG1fdGltZXIuc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyB7
IG1fbnVtYmVyT2ZGcmFtZXNUb1Byb2Nlc3MgLyBzYW1wbGVSYXRlKCkgfSk7CiAgICAgc2V0SXNQ
bGF5aW5nKHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAppbmRleCBkNGVhZTgzMzQzNWMwYTYwNDU1
ZWQwYjk2OTI1NjhjOGVjNjNmMzZkLi5hOGQyOGM0ZWQxYmJlZmZkMzMwOTQ1MGRhYWYzMjllYmEy
NTM0YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaApAQCAtMzgsMTIgKzM4LDE2IEBAIGNsYXNzIEF1ZGlv
SU9DYWxsYmFjazsKIGNsYXNzIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgZmluYWwgOiBwdWJs
aWMgQXVkaW9EZXN0aW5hdGlvbkNvY29hIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKSB7IHJldHVy
biBtYWtlVW5pcXVlPE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E+KGNhbGxiYWNrLCBzYW1wbGVS
YXRlKTsgfQorICAgIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxiYWNrLCBzYW1w
bGVSYXRlKSk7CisgICAgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgTW9ja0F1ZGlvRGVzdGluYXRp
b25Db2NvYShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIH5Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKCk7CiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBzdGFydCgpIGZpbmFsOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChG
dW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAog
ICAgIHZvaWQgdGljaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcAppbmRleCBiMmYzMzEyY2Y0YjA0NjFiODdmYWFhYzM5Y2Q0MmEwNjNlNThhYzczLi4x
ZmU5Mzk4N2VmOTYxZmRmYmUzOGY0N2NhNjcxYWY1ZmRhOThkOWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTQ0LDQgKzU0NCw5IEBAIFJl
ZmVycmVyUG9saWN5IFdvcmtlckdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7CiB9CiAKK1RocmVhZCogV29ya2VyR2xvYmFsU2Nv
cGU6OnVuZGVybHlpbmdUaHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC50aHJl
YWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGJkOWNmMTQwZGQ1MmZiODQ5OGI5ZmE0MTA2MGM5
M2FiZmE2ODM4NWUuLjkwZGYzYjZhZjNkNjNlYzYxYWVjOWExMjNjMDg3N2U3OWUzNGIyNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIldvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUg
IldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBuYW1lc3BhY2UgSURCQ2xp
ZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Qcm94eTsKIH0KIAotY2xhc3MgV29ya2VyR2xvYmFs
U2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBw
bGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxp
dGllcyB7CitjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtl
ckdsb2JhbFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwg
cHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMs
IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChXb3JrZXJHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2Vy
R2xvYmFsU2NvcGUoKTsKQEAgLTg1LDEzICs4NiwxNSBAQCBwdWJsaWM6CiAgICAgV29ya2VyU1dD
bGllbnRDb25uZWN0aW9uJiBzd0NsaWVudENvbm5lY3Rpb24oKTsKICNlbmRpZgogCi0gICAgV29y
a2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0K
KyAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSBmaW5hbCB7IHJldHVybiBtX3Nj
cmlwdC5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0
cjsgfQogCiAgICAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxl
cigpIGNvbnN0IHsgcmV0dXJuICptX2luc3BlY3RvckNvbnRyb2xsZXI7IH0KIAogICAgIFdvcmtl
clRocmVhZCYgdGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWQ7IH0KIAorICAgIFRocmVh
ZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0IGZpbmFsOworCiAgICAgdXNpbmcgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6aGFzUGVuZGluZ0FjdGl2aXR5OwogCiAgICAgdm9pZCBwb3N0VGFzayhU
YXNrJiYpIGZpbmFsOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFz
eW5jaHJvbm91c2x5LgpAQCAtMTE5LDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBib29sIGlz
Q2xvc2luZygpIHsgcmV0dXJuIG1fY2xvc2luZzsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jbG9zaW5nOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1NDhlMDg0OGJlMzUyMmI2YWQ5YzMyODUzMzk3NDZjN2MzOTc0
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUaHJlYWQ7Cit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIFdURjo6VGhyZWFk
KiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3Np
bmcoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyKiBzY3JpcHQoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZmOWJmODNlOTMwZGQxNjVkOGEzMzA0NzA1MmFkNTVkMjJmYWZh
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgeworcHVibGljOgorICAgIHZp
cnR1YWwgfldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGFjcXVpcmVIZWFwQWNjZXNzKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGFkZFRpbWVyU2V0
Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJh
Y2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworCisgICAg
dmlydHVhbCBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdCA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmNwcAppbmRleCA2NmVjZDUzNmY4MTNkMDI5YzQ5N2YxYWVhN2YyMTllZGZjNzViMzc1Li5iYjYx
ZmM1ZjJhOTdkYjg0YjExM2JlMjIzYzdhN2FkYzcxOWI0OTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJUaHJl
YWRHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiVGhyZWFkVGltZXJzLmgiCiAjaW5jbHVkZSAiV29y
a2VyUnVuTG9vcC5oIgotI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAi
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
IAogI2lmIFVTRShHTElCKQpAQCAtMTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgSXNGb3JE
ZWJ1Z2dpbmcgbV9pc0ZvckRlYnVnZ2luZyB7IElzRm9yRGVidWdnaW5nOjpObyB9OwogfTsKIAot
dm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lk
IFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkK
IHsKICAgICBSdW5Mb29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1
Z2dpbmc6Ok5vKTsKICAgICBNb2RlUHJlZGljYXRlIG1vZGVQcmVkaWNhdGUoZGVmYXVsdE1vZGUo
KSk7CkBAIC0xNDMsMTMgKzE0MywxMyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJH
bG9iYWxTY29wZSogY29udGV4dCkKICAgICBydW5DbGVhbnVwVGFza3MoY29udGV4dCk7CiB9CiAK
LU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUo
V29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtl
clJ1bkxvb3A6OnJ1bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJiBj
b250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJ
c0ZvckRlYnVnZ2luZzo6WWVzKTsKICAgICByZXR1cm4gcnVuSW5Nb2RlKCZjb250ZXh0LCBNb2Rl
UHJlZGljYXRlIHsgZGVidWdnZXJNb2RlKCkgfSwgV2FpdEZvck1lc3NhZ2UpOwogfQogCi1NZXNz
YWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxT
Y29wZSogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdh
aXRNb2RlKQogewogICAgIEFTU0VSVChtb2RlICE9IGRlYnVnZ2VyTW9kZSgpKTsKICAgICBSdW5M
b29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Ok5vKTsK
QEAgLTE1OCwxMCArMTU4LDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9v
cDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5J
bk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNhdGUmIHBy
ZWRpY2F0ZSwgV2FpdE1vZGUgd2FpdE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtl
clJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCwg
Y29uc3QgTW9kZVByZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAg
ICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgp
ID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdU
aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogCiAgICAgSlNDOjpKU1J1bkxvb3BUaW1l
cjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayB0aW1lckFkZGVkVGFzayA9IFdURjo6Y3JlYXRl
U2hhcmVkVGFzazxKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvblR5cGU+KFt0
aGlzXSB7CiAgICAgICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIGhlcmUsIHdl
IGp1c3Qgd2FudCB0byBsb29wIGFyb3VuZCBydW5Jbk1vZGUKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckds
b2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgaWYgKHdhaXRNb2RlID09IFdhaXRGb3JNZXNz
YWdlICYmIHByZWRpY2F0ZS5pc0RlZmF1bHRNb2RlKCkgJiYgbV9zaGFyZWRUaW1lci0+aXNBY3Rp
dmUoKSkKICAgICAgICAgdGltZW91dERlbGF5ID0gc3RkOjptaW4odGltZW91dERlbGF5LCBtX3No
YXJlZFRpbWVyLT5maXJlVGltZURlbGF5KCkpOwogCi0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRy
b2xsZXIqIHNjcmlwdCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlw
dCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CiAgICAgICAgIHNjcmlwdC0+cmVsZWFzZUhlYXBBY2Nl
c3MoKTsKICAgICAgICAgc2NyaXB0LT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVk
VGFzayk7CiAgICAgfQogICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0OwogICAgIGF1
dG8gdGFzayA9IG1fbWVzc2FnZVF1ZXVlLndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91
dChyZXN1bHQsIHByZWRpY2F0ZSwgdGltZW91dERlbGF5KTsKLSAgICBpZiAoV29ya2VyU2NyaXB0
Q29udHJvbGxlciogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byog
c2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5hY3F1aXJlSGVh
cEFjY2VzcygpOwogICAgICAgICBzY3JpcHQtPnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKHRp
bWVyQWRkZWRUYXNrKTsKICAgICB9CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBNZXNzYWdlUXVldWVX
YWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29u
dGV4dCwgY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6
cnVuQ2xlYW51cFRhc2tzKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJS
dW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQo
KS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51
bmRlcmx5aW5nVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKICAgICBBU1NFUlQobV9t
ZXNzYWdlUXVldWUua2lsbGVkKCkpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTI2Miw3ICsy
NjIsNyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3REZWJ1Z2dlclRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayYmIHRhc2spCiAgICAgcG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFz
ayksIGRlYnVnZ2VyTW9kZSgpKTsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJm
b3JtVGFzayhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6
VGFzazo6cGVyZm9ybVRhc2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7
CiAgICAgaWYgKCghY29udGV4dC0+aXNDbG9zaW5nKCkgJiYgY29udGV4dC0+c2NyaXB0KCkgJiYg
IWNvbnRleHQtPnNjcmlwdCgpLT5pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkpIHx8IG1fdGFzay5p
c0NsZWFudXBUYXNrKCkpCiAgICAgICAgIG1fdGFzay5wZXJmb3JtVGFzaygqY29udGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCmluZGV4IGE4YzlkZWJkODBkODA5OTU0
YTdhOWQ2OTBmNzc0MDZkMjUyODI2NjguLmVlMjZiMzdmMjk5Y2E2OTljMDRjMGIxYzc0NDE1MDQ4
MDg3MTU3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9v
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCkBAIC0zOCw3
ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBNb2RlUHJlZGljYXRl
OwotICAgIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOworICAgIGNsYXNzIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlOwogICAgIGNsYXNzIFdvcmtlclNoYXJlZFRpbWVyOwogCiAgICAgY2xhc3Mg
V29ya2VyUnVuTG9vcCB7CkBAIC00NywxMyArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB+V29ya2VyUnVuTG9vcCgpOwogICAgICAgICAKICAgICAgICAgLy8gQmxvY2tpbmcg
Y2FsbC4gV2FpdHMgZm9yIHRhc2tzIGFuZCB0aW1lcnMsIGludm9rZXMgdGhlIGNhbGxiYWNrcy4K
LSAgICAgICAgdm9pZCBydW4oV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW4o
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICBlbnVtIFdhaXRNb2RlIHsg
V2FpdEZvck1lc3NhZ2UsIERvbnRXYWl0Rm9yTWVzc2FnZSB9OwogCiAgICAgICAgIC8vIFdhaXRz
IGZvciBhIHNpbmdsZSB0YXNrIGFuZCByZXR1cm5zLgotICAgICAgICBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwg
V2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7Ci0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyR2xvYmFsU2NvcGUmKTsKKyAgICAgICAgTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBj
b25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlID0gV2FpdEZvck1lc3NhZ2UpOworICAgICAgICBN
ZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlJik7CiAKICAgICAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKICAgICAgICAgYm9vbCB0
ZXJtaW5hdGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlUXVldWUua2lsbGVkKCk7IH0KQEAg
LTczLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAKICAgICAgICAgcHJpdmF0ZToK
LSAgICAgICAgICAgIHZvaWQgcGVyZm9ybVRhc2soV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAg
ICAgICAgIHZvaWQgcGVyZm9ybVRhc2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAog
ICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayBtX3Rhc2s7CiAgICAgICAg
ICAgICBTdHJpbmcgbV9tb2RlOwpAQCAtODMsMTEgKzgzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wU2V0dXA7Ci0g
ICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3Bl
KiwgY29uc3QgTW9kZVByZWRpY2F0ZSYsIFdhaXRNb2RlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBjb25zdCBN
b2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOwogCiAgICAgICAgIC8vIFJ1bnMgYW55IGNsZWFuIHVw
IHRhc2tzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB0aGUgcXVldWUgYW5kIHJldHVybnMuCiAgICAg
ICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgY2xv
c2VkIG9yIGxvb3AgaGFzIGJlZW4gdGVybWluYXRlZC4KLSAgICAgICAgdm9pZCBydW5DbGVhbnVw
VGFza3MoV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW5DbGVhbnVwVGFza3Mo
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICBib29sIGlzQmVpbmdEZWJ1
Z2dlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdDb3VudCA+PSAxOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldC5jcHAKaW5kZXggM2Q2ZTBiN2FmMDFlMjE4NWUxYzlmZjlkYjA3ZmZkMzBl
ZGRkMjE3OC4uMzkwOGJkZjNhMjk2YzgxYjZmNGJhOGU4ZTA4ZTNmYzU4MmVlNWUzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAKQEAgLTI4LDI3ICsyOCw3NiBAQAogCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCi0jaW5jbHVkZSAi
V29ya2xldE9wdGlvbnMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNs
dWRlICJXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5n
VGFza3MuaCIKKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChXb3JrbGV0KTsKIAotUmVmPFdvcmtsZXQ+IFdvcmtsZXQ6OmNy
ZWF0ZSgpCitXb3JrbGV0OjpXb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdCgmZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xl
dCgpKTsKIH0KIAotV29ya2xldDo6V29ya2xldCgpCitXb3JrbGV0Ojp+V29ya2xldCgpID0gZGVm
YXVsdDsKKworRG9jdW1lbnQqIFdvcmtsZXQ6OmRvY3VtZW50KCkKK3sKKyAgICByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKKy8vIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93b3JrbGV0cy0xLyNkb20td29ya2xldC1hZGRtb2R1bGUKK3ZvaWQg
V29ya2xldDo6YWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMU3RyaW5nLCBXb3JrbGV0
T3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7
CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1l
bnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJUaGlzIGZyYW1lIGlzIGRldGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgVVJMIG1vZHVsZVVSTCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChtb2R1bGVVUkxT
dHJpbmcpOworICAgIGlmICghbW9kdWxlVVJMLmlzVmFsaWQoKSkgeworICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIk1vZHVsZSBVUkwgaXMgaW52YWxpZCJf
cyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3Byb3hpZXMuaXNFbXB0
eSgpKQorICAgICAgICBtX3Byb3hpZXMuYXBwZW5kVmVjdG9yKGNyZWF0ZUdsb2JhbFNjb3Blcygp
KTsKKworICAgIGF1dG8gcGVuZGluZ1Rhc2tzID0gV29ya2xldFBlbmRpbmdUYXNrczo6Y3JlYXRl
KCp0aGlzLCBXVEZNb3ZlKHByb21pc2UpLCBtX3Byb3hpZXMuc2l6ZSgpKTsKKyAgICBtX3BlbmRp
bmdUYXNrc1NldC5hZGQocGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSk7CisKKyAgICBmb3IgKGF1dG8m
IHByb3h5IDogbV9wcm94aWVzKSB7CisgICAgICAgIHByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShbcGVuZGluZ1Rhc2tzID0gcGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSwg
bW9kdWxlVVJMID0gbW9kdWxlVVJMLmlzb2xhdGVkQ29weSgpLCBjcmVkZW50aWFscyA9IG9wdGlv
bnMuY3JlZGVudGlhbHMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRo
aXMpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIGRvd25jYXN0PFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkuZmV0Y2hBbmRJbnZva2VT
Y3JpcHQobW9kdWxlVVJMLCBjcmVkZW50aWFscywgW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVu
ZGluZ1Rhc2tzKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXShP
cHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyks
IGV4Y2VwdGlvbiA9IGNyb3NzVGhyZWFkQ29weShleGNlcHRpb24pLCBwZW5kaW5nQWN0aXZpdHkg
PSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3Mt
PmFib3J0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3MtPmRlY3JlbWVudENvdW50ZXIoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCBXb3JrZXJS
dW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2xldDo6ZmluaXNo
UGVuZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFza3MmIHRhc2tzKQogeworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ1Rhc2tzU2V0LmNvbnRhaW5zKCZ0
YXNrcykpOworCisgICAgbV9wZW5kaW5nVGFza3NTZXQucmVtb3ZlKCZ0YXNrcyk7CiB9CiAKLXZv
aWQgV29ya2xldDo6YWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkws
IFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCitj
b25zdCBjaGFyKiBXb3JrbGV0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsKLSAgICAv
LyBGSVhNRTogQWRkIHByb3BlciBpbXBsZW1lbnRhdGlvbi4KLSAgICBVTlVTRURfUEFSQU0obW9k
dWxlVVJMKTsKLSAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICByZXR1cm4gIldvcmtsZXQiOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKaW5k
ZXggYjJiZWRjNjU4NjViNzRmNWY5OTU2ZjA0Y2ZjY2MzZjgzNTE5ZjJlMS4uNDE2ODY3NGM3M2Iy
OTkwOWJhNjI5NjI1NzIxYjM4MDUzZTIyN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQu
aApAQCAtMjUsMjcgKzI1LDQ1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiV29ya2xldE9wdGlvbnMu
aCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEb2N1bWVudDsKK2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5OworY2xhc3MgV29ya2xl
dFBlbmRpbmdUYXNrczsKIAotc3RydWN0IFdvcmtsZXRPcHRpb25zOwotCi1jbGFzcyBXb3JrbGV0
IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewor
Y2xhc3MgV29ya2xldCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0
V3JhcHBhYmxlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V29ya2xldD4sIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2xldCk7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXb3JrbGV0PiBjcmVhdGUoKTsKLSAgICB2aXJ0dWFsIH5Xb3JrbGV0
KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfldvcmtsZXQoKTsKICAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgYWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmts
ZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIGZpbmlzaFBlbmRpbmdUYXNr
cyhXb3JrbGV0UGVuZGluZ1Rhc2tzJik7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CisKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4mIHByb3hpZXMoKSBj
b25zdCB7IHJldHVybiBtX3Byb3hpZXM7IH0KIAogcHJvdGVjdGVkOgotICAgIFdvcmtsZXQoKTsK
KyAgICBleHBsaWNpdCBXb3JrbGV0KERvY3VtZW50Jik7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVz
KCkgPSAwOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8V29ya2xldEds
b2JhbFNjb3BlUHJveHk+PiBtX3Byb3hpZXM7CisgICAgSGFzaFNldDxSZWZQdHI8V29ya2xldFBl
bmRpbmdUYXNrcz4+IG1fcGVuZGluZ1Rhc2tzU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbAppbmRleCBlMzlkZGNiNTM4NmUwN2Y5
NWRiZDg0NDA2NmQ0MTQ4NDQzNGVhMjU1Li4yM2ZiNmRmZDU5OGZhNGY2ZjJlNmYyMTU5ZmFlYzVk
NmU5Njg4NWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbApAQCAtMjQsOCArMjQs
OSBAQAogKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBHbG9iYWw9V29ya2xldCwK
ICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKIF0gaW50ZXJmYWNlIFdvcmtsZXQgewotICAgIFtD
YWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTx1bmRlZmluZWQ+IGFkZE1vZHVsZShVU1ZTdHJpbmcg
bW9kdWxlVVJMLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9ucyBvcHRpb25zKTsKKyAgICBQcm9taXNl
PHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmts
ZXRPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDNiNzU4MmFmZmNkMDRiMTQ2MjkwZjNhNzQ2ODY3MzRh
YzY5MGZlZjIuLmZiOGJhYTVkZWZjOWU4NzUzZjBjNDJlZWNmZjliNjRlZTMyMzQwMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMjcs
OCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpT
V29ya2xldEdsb2JhbFNjb3BlLmgiCkBAIC0zNiw3ICszNCw2IEBACiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtl
ckV2ZW50TG9vcC5oIgotI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+
CkBAIC00NywxMCArNDQsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXRHbG9iYWxTY29wZSk7CiAKK1dvcmtsZXRHbG9i
YWxTY29wZTo6V29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgd2luZG93VVJMKQorICAgIDog
bV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4odGhpcykpCisgICAg
LCBtX3RvcE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3Vy
bCh3aW5kb3dVUkwpCit7CisgICAgYXV0byBhZGRSZXN1bHQgPSBhbGxXb3JrbGV0R2xvYmFsU2Nv
cGVzU2V0KCkuYWRkKHRoaXMpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1
bHQpOworCisgICAgc2V0U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6
OmNyZWF0ZShtX3RvcE9yaWdpbi5jb3B5UmVmKCkpKTsKK30KKwogV29ya2xldEdsb2JhbFNjb3Bl
OjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2
bSwgU2NyaXB0U291cmNlQ29kZSYmIGNvZGUpCiAgICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRy
KGRvY3VtZW50KSkKICAgICAsIG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRy
b2xsZXI+KFdURk1vdmUodm0pLCB0aGlzKSkKICAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVVbmlxdWUoKSkKKyAgICAsIG1fdXJsKGNvZGUudXJsKCkpCiAgICAgLCBtX2Nv
ZGUoV1RGTW92ZShjb2RlKSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9i
YWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CkBAIC02MSw3ICs3MCw3IEBAIFdvcmtsZXRHbG9iYWxT
Y29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPEpTQzo6Vk0+
JiYgdm0sIFNjCiAgICAgQVNTRVJUKGRvY3VtZW50LnBhZ2UoKSk7CiAKICAgICBzZXRTZWN1cml0
eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNv
cHlSZWYoKSkpOwotICAgIHNldENvbnRlbnRTZWN1cml0eVBvbGljeShtYWtlVW5pcXVlPENvbnRl
bnRTZWN1cml0eVBvbGljeT4oVVJMIHsgbV9jb2RlLnVybCgpIH0sICp0aGlzKSk7CisgICAgc2V0
Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihV
UkwgeyB0aGlzLT51cmwoKSB9LCAqdGhpcykpOwogfQogCiBXb3JrbGV0R2xvYmFsU2NvcGU6On5X
b3JrbGV0R2xvYmFsU2NvcGUoKQpAQCAtMTEzLDcgKzEyMiw4IEBAIFN0cmluZyBXb3JrbGV0R2xv
YmFsU2NvcGU6OnVzZXJBZ2VudChjb25zdCBVUkwmIHVybCkgY29uc3QKIAogdm9pZCBXb3JrbGV0
R2xvYmFsU2NvcGU6OmV2YWx1YXRlKCkKIHsKLSAgICBtX3NjcmlwdC0+ZXZhbHVhdGUobV9jb2Rl
KTsKKyAgICBpZiAobV9jb2RlKQorICAgICAgICBtX3NjcmlwdC0+ZXZhbHVhdGUoKm1fY29kZSk7
CiB9CiAKIGJvb2wgV29ya2xldEdsb2JhbFNjb3BlOjppc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkg
Y29uc3QKQEAgLTEzNSw3ICsxNDUsNyBAQCBVUkwgV29ya2xldEdsb2JhbFNjb3BlOjpjb21wbGV0
ZVVSTChjb25zdCBTdHJpbmcmIHVybCwgRm9yY2VVVEY4KSBjb25zdAogewogICAgIGlmICh1cmwu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKLSAgICByZXR1cm4gVVJMKG1fY29kZS51
cmwoKSwgdXJsKTsKKyAgICByZXR1cm4gVVJMKHRoaXMtPnVybCgpLCB1cmwpOwogfQogCiB2b2lk
IFdvcmtsZXRHbG9iYWxTY29wZTo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGlu
dCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCkBAIC0xNzEs
NSArMTgxLDExIEBAIFJlZmVycmVyUG9saWN5IFdvcmtsZXRHbG9iYWxTY29wZTo6cmVmZXJyZXJQ
b2xpY3koKSBjb25zdAogICAgIHJldHVybiBSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcjsKIH0K
IAordm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5kSW52b2tlU2NyaXB0KGNvbnN0IFVS
TCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CisgICAgLy8gRklYTUU6IEFkZCBpbXBsZW1lbnRhdGlvbi4KKyAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmgKaW5kZXggMjVkNTQ5YWM0YTBhYTZmZjc1Mjg3NTVkNzA0N2M4MTRlZTdkYzQwNC4uOTgxNDE1
OWRlMmI1MDNhODA4YzgwODcwNDJmNjczNTM2N2JmZjM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTI2LDMwICsyNiwzMiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2lu
Y2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1J1bnRpbWVGbGFncy5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgor
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50TG9v
cFRhc2tHcm91cDsKIGNsYXNzIFdvcmtlckV2ZW50TG9vcDsKLWNsYXNzIFdvcmtsZXRTY3JpcHRD
b250cm9sbGVyOwogCiBlbnVtIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsK
IHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdv
cmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNj
b3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2Ns
YXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxT
Y29wZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2xldEds
b2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xvYmFsU2NvcGUoKTsK
QEAgLTU3LDExICs1OSwxNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgV29ya2xldEdsb2JhbFNjb3Bl
c1NldCA9IEhhc2hTZXQ8Y29uc3QgV29ya2xldEdsb2JhbFNjb3BlKj47CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFdvcmtsZXRHbG9iYWxTY29wZXNTZXQmIGFsbFdvcmtsZXRHbG9iYWxTY29w
ZXNTZXQoKTsKIAorI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHZpcnR1YWwgYm9v
bCBpc1BhaW50V29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNl
bmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgdmlydHVhbCBib29sIGlzQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiAKICAgICBF
dmVudExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogCi0gICAgY29uc3QgVVJMJiB1
cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvZGUudXJsKCk7IH0KKyAgICBjb25zdCBVUkwm
IHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9CiAKICAgICB2b2lkIGV2YWx1YXRl
KCk7CiAKQEAgLTcwLDcgKzc3LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJl
ZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAotICAgIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSBmaW5hbCB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsg
fQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
OjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWw7CiAKQEAgLTc5LDYgKzg2LDEwIEBAIHB1YmxpYzoK
IAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpIGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KIAorICAgIC8vIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLgorICAgIFRocmVh
ZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
KyAgICBib29sIGlzQ2xvc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNDbG9zaW5nOyB9
CisKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KICAgICBib29sIGlzU2VjdXJlQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CiAKQEAgLTg2LDcgKzk3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAorICAgIHZvaWQgZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29u
c3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJik7CisKIHByb3RlY3RlZDoKKyAgICBXb3JrbGV0R2xv
YmFsU2NvcGUoY29uc3QgVVJMJiB3aW5kb3dVUkwpOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShE
b2N1bWVudCYsIFJlZjxKU0M6OlZNPiYmLCBTY3JpcHRTb3VyY2VDb2RlJiYpOwogICAgIFdvcmts
ZXRHbG9iYWxTY29wZShjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUmKSA9IGRlbGV0ZTsKICAgICBX
b3JrbGV0R2xvYmFsU2NvcGUoV29ya2xldEdsb2JhbFNjb3BlJiYpID0gZGVsZXRlOwpAQCAtMTM2
LDggKzE1MCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1fZXZl
bnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVmYXVs
dFRhc2tHcm91cDsKIAorICAgIFVSTCBtX3VybDsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX2pz
UnVudGltZUZsYWdzOwotICAgIFNjcmlwdFNvdXJjZUNvZGUgbV9jb2RlOworICAgIE9wdGlvbmFs
PFNjcmlwdFNvdXJjZUNvZGU+IG1fY29kZTsKKyAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2Ug
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAgLTE0NSw0ICsxNjEsMyBAQCBwcml2
YXRlOgogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGUpCiBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgp
OyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCmluZGV4IGQ3NTlmMGNlMWQxNmY4
NjkxODYwMTI3NzZmMGRiMTZiNjFiYWE0NzguLmI2MzIyNGRkMWVhMThjMDNjMDUzMjNiNzNlYTU4
NWJlMzkyZGNjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmlkbApAQCAtMjYsNyArMjYsNiBAQAogWwogICAgIEN1c3RvbVByb3h5VG9KU09iamVj
dCwKICAgICBFeHBvc2VkPVdvcmtsZXQsCi0gICAgRW5hYmxlZEF0UnVudGltZT1DU1NQYWludGlu
Z0FQSSwKICAgICBDb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJLAogICAgIEpTTGVnYWN5UGFy
ZW50PUpTV29ya2xldEdsb2JhbFNjb3BlQmFzZSwKICAgICBJbXBsaWNpdFRoaXMsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYWM1ZDkxY2M3ZDAyNDIwYjVmYWZmMjE5MWMwZWVmOGZmOWE1ZDdmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHku
aApAQCAtMCwwICsxLDQ2IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBt
ZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50
aWFscy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3M7CisKK2NsYXNz
IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdv
cmtsZXRHbG9iYWxTY29wZVByb3h5PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2xldEds
b2JhbFNjb3BlUHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgcG9zdFRhc2tG
b3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
LCBjb25zdCBTdHJpbmcmIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmZmZTVkNzYxYWY0NmYyNjE0MTE3OTA0YWMxMDRjMzA0OTExNDVkOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRp
bmdUYXNrcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dvcmtsZXRQZW5kaW5nVGFza3M6
OldvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQ
dHIod29ya2xldCkpCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKKyAgICAsIG1f
Y291bnRlcihjb3VudGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cit9CisKK3Zv
aWQgV29ya2xldFBlbmRpbmdUYXNrczo6YWJvcnQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9jb3VudGVyID09IC0xKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2NvdW50ZXIgPSAtMTsKKyAgICBtX3Byb21pc2UucmVq
ZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgaWYgKG1fd29ya2xldCkKKyAgICAgICAgbV93
b3JrbGV0LT5maW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworfQorCit2b2lkIFdvcmtsZXRQZW5k
aW5nVGFza3M6OmRlY3JlbWVudENvdW50ZXIoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisKKyAgICBpZiAobV9jb3VudGVyID09IC0xKQorICAgICAgICByZXR1cm47CisKKyAgICAt
LW1fY291bnRlcjsKKyAgICBpZiAoIW1fY291bnRlcikgeworICAgICAgICBtX3Byb21pc2UucmVz
b2x2ZSgpOworICAgICAgICBpZiAobV93b3JrbGV0KQorICAgICAgICAgICAgbV93b3JrbGV0LT5m
aW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjczM2Q2YmJhYmUwZTliOTNlMjgzYTMyODY3MTVjYTg5ZGMyNmMwOWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tz
LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldDsKKworLy8gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorY2xh
c3MgV29ya2xldFBlbmRpbmdUYXNrcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3Jr
bGV0UGVuZGluZ1Rhc2tzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrbGV0UGVuZGlu
Z1Rhc2tzPiBjcmVhdGUoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXb3JrbGV0UGVuZGluZ1Rhc2tzKHdvcmtsZXQsIFdURk1vdmUocHJvbWlzZSksIGNvdW50
ZXIpKTsKKyAgICB9CisKKyAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbiYmKTsKKyAgICB2b2lkIGRl
Y3JlbWVudENvdW50ZXIoKTsKKworcHJpdmF0ZToKKyAgICBXb3JrbGV0UGVuZGluZ1Rhc2tzKFdv
cmtsZXQmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiwgaW50IGNvdW50ZXIpOworCisgICAg
V2Vha1B0cjxXb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
IG1fcHJvbWlzZTsKKyAgICBpbnQgbV9jb3VudGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IDIwYTZmODU2MTg1OGFkZmJlMmUyYmMxOGViZjcxNTBiOTdhZDE0Zjgu
LjE3ZGY1ZTFmM2NmMDY1NzE0YmNlZjc1ZWQ4NWZjYWQ1MzhmNmU4MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2
LDggKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KKyNpbmNsdWRl
ICJKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCkBA
IC01Niw2ICs1NSwxMSBAQCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENv
bnRyb2xsZXIoUmVmPFZNPiYmIHZtLCBXb3JrbGV0R2xvYmFsU2NvcAogICAgIEpTVk1DbGllbnRE
YXRhOjppbml0Tm9ybWFsV29ybGQobV92bS5nZXQoKSk7CiB9CiAKK1dvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3JrbGV0R2xvYmFsU2NvcGUqIHdvcmts
ZXRHbG9iYWxTY29wZSkKKyAgICA6IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFZNOjpjcmVhdGUo
KSwgd29ya2xldEdsb2JhbFNjb3BlKQoreworfQorCiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
fldvcmtsZXRTY3JpcHRDb250cm9sbGVyKCkKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSgp
KTsKQEAgLTE0NSwxMCArMTQ5LDE5IEBAIHZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6Omlu
aXRTY3JpcHQoKQogICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQogICAgICAgICByZXR1
cm47CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBpZiAoaXM8UGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgewogICAgICAgICBpbml0U2Ny
aXB0V2l0aFN1YmNsYXNzPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUsIFBhaW50V29ya2xldEdsb2JhbFNjb3BlPigpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGlm
IChpczxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7Cisg
ICAgICAgIGluaXRTY3JpcHRXaXRoU3ViY2xhc3M8SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZVBy
b3RvdHlwZSwgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSwgQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU+KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQpAQCAtMTk2LDUgKzIwOSw2MiBAQCB2b2lkIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpzZXRFeGNlcHRpb24oSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlvbikKICAgICB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgZXhjZXB0aW9uKTsKIH0KIAor
dm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVsZWFzZUhlYXBBY2Nlc3MoKQoreworICAg
IG1fdm0tPmhlYXAucmVsZWFzZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjphY3F1aXJlSGVhcEFjY2VzcygpCit7CisgICAgbV92bS0+aGVhcC5hY3F1aXJlQWNj
ZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90
aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sg
Y2FsbGJhY2spCit7CisgICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVy
KiB0aW1lcikgeworICAgICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB0aW1lci0+YWRkVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisK
KyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAg
ICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBw
cm9jZXNzVGltZXIobV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpT
UnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQoreworICAg
IGF1dG8gcHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGltZXIpIHsKKyAgICAg
ICAgaWYgKCF0aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGltZXItPnJlbW92
ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisgICAgcHJvY2Vzc1Rp
bWVyKG1fdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVy
KG1fdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1f
dm0tPmRlZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpCit7CisgICAgaWYgKG1faXNU
ZXJtaW5hdGluZ0V4ZWN1dGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgeworICAgICAgICAv
LyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1cmUgdGhhdCBvbmNl
CisgICAgICAgIC8vIHRlcm1pbmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNUZXJtaW5hdGluZ0V4ZWN1
dGlvbigpIHdpbGwKKyAgICAgICAgLy8gYWNjdXJhdGVseSByZWZsZWN0IHRoYXQgbGV4aWNhbEds
b2JhbE9iamVjdCB3aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgorICAgICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrKTsKKyAgICAgICAg
bV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uID0gdHJ1ZTsKKyAgICB9CisgICAgbV92bS0+bm90aWZ5
TmVlZFRlcm1pbmF0aW9uKCk7Cit9CisKK2Jvb2wgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6Omlz
VGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdAoreworICAgIC8vIFNlZSBjb21tZW50cyBpbiBz
Y2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRleCB1c2FnZS4KKyAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrKTsKKyAgICBy
ZXR1cm4gbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oCmluZGV4IGUzNmQyYTI0MmJmNTQ2NGZhMjdjZjNkYTlhYjUyODRmMDAwNGQ2
ZWUuLjZkNDNjZTVmOWZmZDJhNzBhZjBiZjZlNWFlZTU0Y2Q4ZmFjNzJmMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMjUs
OCArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQotCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAg
LTQ2LDkgKzQ1LDExIEBAIGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50OwogY2xhc3MgV29ya2xl
dEdsb2JhbFNjb3BlOwogY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiAKLWNsYXNzIFdvcmts
ZXRTY3JpcHRDb250cm9sbGVyIHsKKy8vIEZJWE1FOiBXZSBzaG91bGQgc2hhcmUgbW9yZSBjb2Rl
IHdpdGggV29ya2VyU2NyaXB0Q29udHJvbGxlci4KK2NsYXNzIFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgV29ya2xldFNjcmlwdENvbnRyb2xsZXIo
V29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIoUmVmPEpT
Qzo6Vk0+JiYsIFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAgIH5Xb3JrbGV0U2NyaXB0Q29udHJv
bGxlcigpOwogCkBAIC02NCw2ICs2NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlRXZh
bChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBkaXNhYmxlV2ViQXNzZW1i
bHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCisgICAgdm9pZCByZWxlYXNlSGVhcEFj
Y2VzcygpIGZpbmFsOworICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKworICAg
IHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJO
b3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlm
aWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBm
aW5hbDsKKworICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOworICAgIGJv
b2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBldmFs
dWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1l
c3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uLCBTdHJpbmcq
IHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogCkBAIC04Nyw3ICs5Nyw4IEBA
IHByaXZhdGU6CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKiBtX3dvcmtsZXRHbG9iYWxTY29wZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2xldENvbnNvbGVDbGllbnQ+IG1fY29uc29sZUNsaWVu
dDsKICAgICBKU0M6OlN0cm9uZzxKU1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFs
U2NvcGVXcmFwcGVyOworICAgIG11dGFibGUgTG9jayBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9j
azsKKyAgICBib29sIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwCmluZGV4IDZhMTAxYzM5NTkzY2M0YzE1NGM3NDVmNmQ3OTczN2EwMmE5MjNmNmQuLjBiOWFi
MWRjZTM0YTUyMGQ4MmUyZmFkNWY1ZDA2YTg2OWVmNzRkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmNwcApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3AoKTsK
ICAgICB9CiAKLSAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOyB9Cisg
ICAgdm9pZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoeyB9KTsgfQogICAgIHZvaWQg
c3RvcCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOyB9CiAgICAgYm9vbCBpc1BsYXlpbmcoKSB7
IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKTsgfQogICAgIHVuc2lnbmVkIGZyYW1l
c1BlckJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZl
cigpIDsgfQpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAKICAgICBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIgbV9pZDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9k
ZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsK
ICAgICBSZWZQdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4gbV9wcm90ZWN0VGhpc0R1cmluZ0dy
YWNlZnVsU2h1dGRvd247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
aW5kZXggMDY5NDViYWZkNWQxODljN2EwZjljNzI0MDJiYjg4OWRjODA3ZjZmNC4uODIxMzgwMGI5
ZjEwYzU4MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcApAQCAtNDMsMTAgKzQzLDEwIEBAIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29y
ZTo6QXVkaW9CdXM7CiB1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjsKIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
azsKIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCitSZWY8QXVkaW9E
ZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywKICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShjYWxsYmFjaywgaW5w
dXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBzYW1wbGVSYXRlKSk7CiB9CiAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0
cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNp
Z25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQpAQCAtNzcsOCAr
NzcsOSBAQCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkoKQogICAgIH0pOwogfQogCi12b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6c3RhcnQoKQordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KEZ1bmN0
aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQog
eworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGlu
YXRpb25JRCksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOwpAQCAtODks
MTkgKzkwLDMxIEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAogICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rl
c3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworICAgIG1fZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVz
RGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewor
ICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgcmVuZGVyaW5nIG9uIHRoZSBtYWluIHRocmVhZCB3aGVu
IEF1ZGlvV29ya2xldCBpcyBub3QgYWN0aXZlLCB3aGljaCBpcyBsaWtlbHkgbm90IGEgZ29vZCBp
ZGVhLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0
YS5mcmFtZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZl
cnMuc2l6ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShhdWRpb0J1
c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
LCBmYWxzZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0YS5jaGFu
bmVsQnVmZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1v
cnkoaSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEoKSwgYXVk
aW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBh
dWRpb0J1cy5nZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgYXVkaW9CdXNEYXRh
Lm91dHB1dFBvc2l0aW9uKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgYXV0byBk
b1JlbmRlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGF1ZGlvQnVz
ID0gV1RGTW92ZShhdWRpb0J1cyksIGZyYW1lc1RvUHJvY2VzcyA9IGF1ZGlvQnVzRGF0YS5mcmFt
ZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uID0gYXVkaW9CdXNEYXRhLm91dHB1dFBvc2l0aW9u
XSB7CisgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKKyAgICB9OworICAgIGlmIChtX2Rpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFtkb1JlbmRl
ciA9IFdURk1vdmUoZG9SZW5kZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZG9SZW5kZXIoKTsKKyAgICAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb1JlbmRlcigpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHk6OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oCmluZGV4IGFkYTZmZWVmZjM3NDMwZjNjNGRkMzdmMTNjN2UzYTRlNzY2
YTM5ZGEuLjkwN2VjZjVhNzdmNDJiOTQ3ODkwYmRmM2ExN2UxOGVjZmI1YWE1ZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKICAgICB1c2luZyBBdWRpb0lPQ2Fs
bGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5z
aWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgc3Rh
dGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICB+UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5KCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCi0gICAgdm9pZCBzdGFydCgp
IG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+
JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgp
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1Bs
YXlpbmc7IH0KICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zYW1wbGVSYXRlOyB9CkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9mcmFtZXNQZXJCdWZmZXIgeyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIgbV9kZXN0aW5hdGlvbklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9Owor
ICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAppbmRleCAy
ZTg2MWExZTRlMzFlMTQ3ODJhMmI5ZTgzMTk4YzE2N2E1OTQ2MTEzLi5kNWFlZjE1MzRhZDIzNjVk
MjEzN2ExN2I2ZjZkNDRlMWVmODUxOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVn
eSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCi1zdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9E
ZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQsCitSZWY8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVk
aWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5k
ZXggODE3YzRjMjliMTczMmY0NWY5MGUyMTU1ZDY1Y2VlODQ3YzE3YmVlMi4uNmI3YjljZTYwM2E4
NzM5ZTcxZDkwNDc1ZmNjNzg3MjY4ZjZkOWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTM5LDcgKzM5LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKKyAgICBSZWY8V2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sm
LAogICAgICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBmYWY5M2I3M2EyYjAxNDEwMzgwNWE1Y2M2YmNhN2I2
NTNhNjUyN2I3Li5lYmJiM2JlYTZlZGJiNDdiY2I0ZTJkMGIyOTdmY2QwNWViYTYzMjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02OSw3ICs2OSw3IEBAIFBhc3RlYm9hcmRT
dHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3ko
KQogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsK
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNh
bGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGlu
YXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBs
ZVJhdGUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKaW5kZXggZGY0YTFmNzg1MDRkYmUyMzBhOTc3ZTk3ZmQyNTlkMjRlNGY5MjAzMS4u
ZTAzNDIzZDc1M2NiMTk4MGVlM2ViODg5MmZhMjg1MWVlNDk2MjUyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3RlYm9hcmRTdHJhdGVneSog
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogY2xhc3Mg
V2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5h
dGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNh
bGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410179</attachid>
            <date>2020-09-30 17:24:38 -0700</date>
            <delta_ts>2020-09-30 17:41:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930172437.patch</filename>
            <type>text/plain</type>
            <size>153926</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5iZGNmNzc5YmRiZmQwODY5NjYwMzI1MmJmZTcxMjIzYWI3NjQyMzExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODEsMTAgKzgxLDExIEBAIEFzeW5jQ2xpcGJvYXJk
QVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NPQSkiIDogdHJ1ZQogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotQXVkaW9Xb3JrbGV0RW5hYmxlZDoKK0F1ZGlvV29ya2xldEFQSUVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25k
aXRpb246IEVOQUJMRShXRUJfQVVESU8pCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdh
Y3k6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDRkZmNlYmYyNDQ1YTZjNGE1ZTk2MzQ4NWU0NjM1
NTQ2Zjc2Y2Y5MGUuLjFmZmRhOWRlN2I2NGY0OTcwMmQ3M2VlMTdlMTU2MjIyYzQwYzkzMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NzQsNiArNDc0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNGZjMDU0NGY5Y2Q5
NzYxYWUwMWRjYjY1MTQ4YzM0YTM4MmJlYWJkOS4uYThkY2Y5Njk4MmE0MDgyOTk3NDU4MjU4MzRi
NzE2MGI0NWQyN2Y1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA0NDIxNjA0NjdkZTE2NWU3NWQ1NDQ5
NzUwZmRkYTEzY2VkYzc0NjgwLi4zNjc5NWVhNDEzMzhlZGRhODRhZDI4MzRmNjg4ZGVkMzIwNGRl
MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdApAQCAtMSw0ICsxLDUgQEAKICMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgZ2Vu
ZXJhdGUteGNmaWxlbGlzdHMgc2NyaXB0LgorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9CeXRlTGVuZ3RoUXVl
dWluZ1N0cmF0ZWd5QnVpbHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaApAQCAtMjA3LDYgKzIwOCw4
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9U
cmFja01lZGlhU291cmNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldC5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGUuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRiMWQ2YWE0NjRh
M2EyMDE0ODU5NjFlZjcxMTUzNjE1N2UzZjBhYjYuLjJjMWMxMDg5YWQ1YWI2Yjc1OWY1MDZkYzFh
ZTkwM2NmZjIwNjA2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDA3LDYg
KzQwNyw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIFwKQEAgLTE3NDgsNiArMTc0OSw3
IEBAIERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1CiBTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgPSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRs
CiBXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsCiBQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSA9IFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorQVVESU9XT1JL
TEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwKIElETF9GSUxFU19UTVAgPSBpZGxfZmlsZXMudG1wCiBJRExfQVRU
UklCVVRFU19GSUxFID0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMu
anNvbgogCkBAIC0xNzY4LDEzICsxNzcwLDE0IEBAIElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBc
CiAgICAgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAog
ICAgICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAg
JChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKLSAgICAkKFBBSU5UV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKQorICAgICQoUEFJTlRXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKEFVRElPV09SS0xFVEdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKQogIwogSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQo
c3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVESUFU
RV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVT
X0ZJTEUpICQoSlNfQklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9E
RVBFTkRFTkNJRVMpIERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9E
RUZJTkVfREVQRU5ERU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNo
byAkKGYpPj4kKElETF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9Q
TEFURk9STV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3Qg
JChJRExfRklMRVNfVE1QKSAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklM
RSkgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZ
X0ZJTEUpIC0taXNvU3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJ
TEUpIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkg
LS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUgJChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1z
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgJChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQUExF
TUVOVEFMX01BS0VGSUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9E
RUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklM
RVNfVE1QKSAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBw
bGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0t
aXNvU3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2lu
ZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChE
RURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
QVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFs
TWFrZWZpbGVEZXBzICQoU1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCiAJJChERUxFVEUpICQo
SURMX0ZJTEVTX1RNUCkKIAogSlMlLmNwcCBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NS
SVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKElETF9JTlRFUk1FRElBVEVfRklMRVMpICQo
RkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCmluZGV4IGJlZDdiNDBk
YmMzMmRiMzIyZTc5YjY4NGRhNTBiMGQ5NzZhZWYwYzYuLjJhMmMxMTc1NjhjNGI0Mzc3YjQ2MTQ1
MjYxZTM0Y2ExNWEzM2M5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtTWFwLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0
aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0QVBJLAogICAgIEV4cG9zZWQ9V2luZG93LAog
ICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKaW5kZXggYTk5NGEy
NGZhMWYzODFkMjkwY2RjOTA2Y2NiMWU4NzEwY2NlYmVmYy4uZmNiOTlhNjc2ZmJhNTI3ZmNjNTE0
Y2QxODUyYzI2YzQ1ZTBiMWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0LmNwcApAQCAtMzEsMTUgKzMxLDM0IEBACiAjaWYgRU5BQkxFKFdF
Ql9BVURJTykKICNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKIAorI2luY2x1ZGUgIkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEF1ZGlv
V29ya2xldD4gQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKQorUmVmPEF1ZGlvV29ya2xldD4gQXVkaW9X
b3JrbGV0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8gd29ya2xldCA9
IGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0KGRvY3VtZW50KSk7CisgICAgd29ya2xldC0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHdvcmtsZXQ7Cit9CisKK0F1ZGlvV29ya2xldDo6
QXVkaW9Xb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IFdvcmtsZXQoZG9jdW1lbnQp
Cit7Cit9CisKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBBdWRpb1dvcmts
ZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVk
aW9Xb3JrbGV0KTsKKyAgICAvLyBXZWJBdWRpbyB1c2VzIGEgc2luZ2xlIGdsb2JhbCBzY29wZS4K
KyAgICByZXR1cm4geyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlKCp0aGlzKSB9
OwogfQogCi1BdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xldCgpCitBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eSogQXVkaW9Xb3JrbGV0Ojpwcm94eSgpIGNvbnN0CiB7CisgICAgYXV0byYgcHJveGll
cyA9IHRoaXMtPnByb3hpZXMoKTsKKyAgICBpZiAocHJveGllcy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eT4ocHJveGllcy5maXJzdCgpLnB0cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgK
aW5kZXggNTUxMTVlMzEyYTk2ZGZjOGI1M2RiYzcwYjA5NDA1NmIxMzI5NjZkYi4uODAzZmJiNzRk
OWQ2MDNlMzY0ZGQ0M2Y2OGJmODU0OTE0MTI5ODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCkBAIC0zMywxMiArMzMsMTkgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb1dvcmtsZXQgOiBwdWJsaWMgV29ya2xldCB7
CitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0
IGZpbmFsIDogcHVibGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9X
b3JrbGV0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKERv
Y3VtZW50Jik7CisKKyAgICBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogcHJveHkoKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1dvcmtsZXQoKTsKKyAgICBleHBsaWNpdCBBdWRpb1dv
cmtsZXQoRG9jdW1lbnQmKTsKKworICAgIC8vIFdvcmtsZXQuCisgICAgVmVjdG9yPFJlZjxXb3Jr
bGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCmluZGV4IGJjNWVhOGYwZDVmN2ZiYjRkMzZlYzg2MjhhOTNi
YTE0NGFlZGZhZDcuLjU2MDNmNzhkZjZhYjMyYTFlY2VjOGY4NmYwMjhjMTkzMDFiMmM0ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwK
QEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBF
bmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlv
V29ya2xldEFQSSwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRlVG9KU09iamVj
dCwKICAgICBTZWN1cmVDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0
ZjI2MGUyNmZkMTg4OGE2ZTRjOTVlNzg5NDU2NmQ5OTdmNjM3MGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8p
CisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkF1ZGlv
V29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlKTsKKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OkF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlKEF1ZGlvV29ya2xldFRocmVhZCYgdGhyZWFkLCBjb25zdCBXb3JrbGV0UGFy
YW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IFdvcmtsZXRHbG9iYWxTY29wZShwYXJhbWV0ZXJz
LndpbmRvd1VSTCkKKyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKK30KKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6On5BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworVGhyZWFkKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZTo6dW5kZXJseWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLT50aHJl
YWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTViZmE0Y2VjNmFmZGJmMmYz
MmNlMzk2YTdkYmQyMzNhZjkxNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxT
Y29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVh
ZDsKKworc3RydWN0IFdvcmtsZXRQYXJhbWV0ZXJzOworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+IGNyZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRo
cmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSh0aHJlYWQsIHBh
cmFtZXRlcnMpKTsKKyAgICB9CisgICAgfkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7CisKKyAg
ICBUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAg
ICBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3Jr
bGV0UGFyYW1ldGVycyYpOworCisgICAgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVh
ZD4gbV90aHJlYWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpCitzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCkgeyByZXR1cm4gaXM8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAm
JiBkb3duY2FzdDxXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmlzQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUoKTsgfQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6
OldvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA1N2JjYzBhOWY1ZTcwNDliNTY4OGU3NWI2NzgzNWVkOGQyYzM2NTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBFeHBvc2VkPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVk
QXRSdW50aW1lPUF1ZGlvV29ya2xldEFQSSwKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCisg
ICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIEltcGxpY2l0VGhpcywKKyAgICBJc0lt
bXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCwKKyAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4
b3RpY09iamVjdE9uUHJvdG90eXBlLAorICAgIEdsb2JhbD0oV29ya2xldCxBdWRpb1dvcmtsZXQp
LAorXSBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBXb3JrbGV0R2xvYmFsU2Nv
cGUgeworICAgIC8vIEltcGxlbWVudCBBUEkuCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NzIxNjE0YmJjYTJiYzlhMDVmYjBlOTRiYWYxY2ViYjY4YzkzYWEzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5o
IgorCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhy
ZWFkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rh
c2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHk6OkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAg
ICA6IG1fd29ya2xldChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fd29ya2xldFRocmVh
ZChBdWRpb1dvcmtsZXRUaHJlYWQ6OmNyZWF0ZSh7IHdvcmtsZXQuZG9jdW1lbnQoKS0+dXJsKCkg
fSkpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fd29ya2xldFRocmVh
ZC0+c3RhcnQoKTsKK30KKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6On5BdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eSgpID0gZGVmYXVsdDsKKworYm9vbCBBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBtX3dv
cmtsZXRUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9k
ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmE3YWRmNGYyODM4MDNhYjk0NTEwM2Q5ZjMyYTZmODc5MWJhMTQ5YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0OworY2xh
c3MgQXVkaW9Xb3JrbGV0VGhyZWFkOworCitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eT4gY3JlYXRlKEF1ZGlvV29ya2xldCYgd29y
a2xldCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldE1l
c3NhZ2luZ1Byb3h5KHdvcmtsZXQpKTsKKyAgICB9CisKKyAgICB+QXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkoKTsKKworICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gdGhlIG1haW4gdGhy
ZWFkIHRvIHBvc3QgdGFzayBiYWNrIHRvIHRoZSB3b3JrbGV0IHRocmVhZC4KKyAgICBib29sIHBv
c3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBs
aWNpdCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmKTsKKworICAgIGJv
b2wgaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKworICAgIFdlYWtQdHI8QXVkaW9Xb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgUmVmPEF1
ZGlvV29ya2xldFRocmVhZD4gbV93b3JrbGV0VGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Oldv
cmtsZXRHbG9iYWxTY29wZVByb3h5JiBwcm94eSkgeyByZXR1cm4gcHJveHkuaXNBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNTYyNzE0ODY2M2YwNDIxOGIx
ZTU1MDUxNzViMDQ5NWE1NDY5MTIwNi4uNmIwYzFhMDZlNjAxNWEzZDdiMmNiNmZmYWM3NDkyYmY3
OTQ0ZDVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRpb25h
bD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5h
YmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXRBUEksCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmlkbAppbmRleCBhOWUxOWI2OTVlMDZmMjMxMzg4ZTczNWIyYjYwNTI5NzlmMTFmOTA1Li4zMzlj
NzZmNGIxOGMwOWYyNTQyYzdhOTYxZTgxNjBhN2I0Mjg5ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAot
ICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9
QXVkaW9Xb3JrbGV0QVBJLAogXSBkaWN0aW9uYXJ5IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zIDog
QXVkaW9Ob2RlT3B0aW9ucyB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0cyA9IDE7
CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM5NzdmMzk5NDRmMmJlY2I3NjhjODk1NmNhZjVlZWEyYWQ4OGEwYzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRo
cmVhZC5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKworI2luY2x1ZGUgIkF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGFy
YW1ldGVycyBXb3JrbGV0UGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gV29ya2xldFBhcmFtZXRlcnMgeworICAgICAgICB3aW5kb3dVUkwuaXNvbGF0ZWRDb3B5
KCkKKyAgICB9OworfQorCitBdWRpb1dvcmtsZXRUaHJlYWQ6OkF1ZGlvV29ya2xldFRocmVhZChj
b25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fcGFyYW1ldGVycyhw
YXJhbWV0ZXJzLmlzb2xhdGVkQ29weSgpKQoreworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVh
ZDo6c3RhcnQoKQoreworICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25B
bmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrKTsKKworICAgIFJlZjxUaHJlYWQ+IHRocmVhZCA9IFRo
cmVhZDo6Y3JlYXRlKCJXZWJDb3JlOiBBdWRpb1dvcmtsZXQiLCBbdGhpc10geworICAgICAgICB3
b3JrbGV0VGhyZWFkKCk7CisgICAgfSwgVGhyZWFkVHlwZTo6QXVkaW8pOworICAgIC8vIEZvcmNl
IHRoZSBUaHJlYWQgb2JqZWN0IHRvIGJlIGluaXRpYWxpemVkIGZ1bGx5IGJlZm9yZSBzdG9yaW5n
IGl0IHRvIG1fdGhyZWFkIChhbmQgYmVjb21pbmcgdmlzaWJsZSB0byBvdGhlciB0aHJlYWRzKS4K
KyAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOworICAgIG1fdGhyZWFkID0gV1RGTW92ZSh0aHJl
YWQpOworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6d29ya2xldFRocmVhZCgpCit7Cisg
ICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyNpZiBVU0UoR0xJQikK
KyAgICBHUmVmUHRyPEdNYWluQ29udGV4dD4gbWFpbkNvbnRleHQgPSBhZG9wdEdSZWYoZ19tYWlu
X2NvbnRleHRfbmV3KCkpOworICAgIGdfbWFpbl9jb250ZXh0X3B1c2hfdGhyZWFkX2RlZmF1bHQo
bWFpbkNvbnRleHQuZ2V0KCkpOworI2VuZGlmCisKKyAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ciogc2NyaXB0Q29udHJvbGxlcjsKKyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2Nr
KG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrKTsKKyAgICAgICAgbV93
b3JrbGV0R2xvYmFsU2NvcGUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3JlYXRlKCp0aGlz
LCBtX3BhcmFtZXRlcnMpOworCisgICAgICAgIHNjcmlwdENvbnRyb2xsZXIgPSBtX3dvcmtsZXRH
bG9iYWxTY29wZS0+c2NyaXB0KCk7CisKKyAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVk
KCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRo
ZSB0aHJlYWQgaGFkIGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4
aXN0IHlldCwKKyAgICAgICAgICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpIGNvdWxkbid0IGJlIGNh
bGxlZCBmcm9tIHN0b3AoKS4KKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNjaGVkdWxl
RXhlY3V0aW9uVGVybWluYXRpb24oKTsKKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmZv
cmJpZEV4ZWN1dGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgcnVuRXZlbnRMb29wKCk7
CisKKyNpZiBVU0UoR0xJQikKKyAgICBnX21haW5fY29udGV4dF9wb3BfdGhyZWFkX2RlZmF1bHQo
bWFpbkNvbnRleHQuZ2V0KCkpOworI2VuZGlmCisKKyAgICBSZWZQdHI8VGhyZWFkPiBwcm90ZWN0
b3IgPSBtX3RocmVhZDsKKworICAgIEFTU0VSVChtX3dvcmtsZXRHbG9iYWxTY29wZS0+aGFzT25l
UmVmKCkpOworCisgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiB3b3JrbGV0R2xv
YmFsU2NvcGVUb0RlbGV0ZTsKKyAgICB7CisgICAgICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMg
bmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGNoYW5nZSBtX3dvcmtlckdsb2JhbFNj
b3BlCisgICAgICAgIC8vIHdoaWxlIFdvcmtlclRocmVhZDo6c3RvcCBpcyBhY2Nlc3NpbmcgaXQu
CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0
R2xvYmFsU2NvcGVMb2NrKTsKKworICAgICAgICAvLyBEZWxheSB0aGUgZGVzdHJ1Y3Rpb24gb2Yg
dGhlIFdvcmtlckdsb2JhbFNjb3BlIGNvbnRleHQgdW50aWwgYWZ0ZXIgd2UndmUgdW5sb2NrZWQg
dGhlCisgICAgICAgIC8vIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrZXJHbG9iYWxTY29wZU11dGV4
LiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGRlc3RydWN0aW5nIHRoZQorICAgICAgICAvLyBjb250
ZXh0IHdpbGwgdHJpZ2dlciB0aGUgbWFpbiB0aHJlYWQgdG8gcmFjZSBhZ2FpbnN0IHVzIHRvIGRl
bGV0ZSB0aGUgV29ya2VyVGhyZWFkCisgICAgICAgIC8vIG9iamVjdCwgYW5kIHRoZSBXb3JrZXJU
aHJlYWQgb2JqZWN0IG93bnMgdGhlIG11dGV4IHdlIG5lZWQgdG8gdW5sb2NrIGFmdGVyIHRoaXMu
CisgICAgICAgIHdvcmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlID0gV1RGTW92ZShtX3dvcmtsZXRH
bG9iYWxTY29wZSk7CisgICAgfQorCisgICAgLy8gVGhlIGJlbG93IGFzc2lnbm1lbnQgd2lsbCBk
ZXN0cm95IHRoZSBjb250ZXh0LCB3aGljaCB3aWxsIGluIHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBw
cm94eS4KKyAgICAvLyBXZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJl
YWQgZXhpdCwgYmVjYXVzZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNl
IGRlc3Ryb3kgdGhlbS4KKyAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IG51bGxwdHI7
CisKKyAgICAvLyBTZW5kIHRoZSBsYXN0IFdvcmtlclRocmVhZCBSZWYgdG8gYmUgRGVyZWYnZWQg
b24gdGhlIG1haW4gdGhyZWFkLgorICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7IH0pOworCisgICAgLy8gVGhlIHRocmVhZCBvYmpl
Y3QgbWF5IGJlIGFscmVhZHkgZGVzdHJveWVkIGZyb20gbm90aWZpY2F0aW9uIG5vdywgZG9uJ3Qg
dHJ5IHRvIGFjY2VzcyAidGhpcyIuCisgICAgcHJvdGVjdG9yLT5kZXRhY2goKTsKK30KKwordm9p
ZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCit7CisgICAgLy8gRG9lcyBub3Qg
cmV0dXJuIHVudGlsIHRlcm1pbmF0ZWQuCisgICAgbV9ydW5Mb29wLnJ1bihtX3dvcmtsZXRHbG9i
YWxTY29wZS5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTI3MDJjOThmZGY4M2Y5NzUy
OTQ0YTQ1MGM5MzRhYzg1Mzc5NDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaApAQCAtMCwwICsxLDc2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTsK
Kworc3RydWN0IFdvcmtsZXRQYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBVUkwgd2luZG93VVJM
OworCisgICAgV29ya2xldFBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCitj
bGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVk
aW9Xb3JrbGV0VGhyZWFkPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRU
aHJlYWQ+IGNyZWF0ZShjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldFRocmVhZChwYXJhbWV0
ZXJzKSk7CisgICAgfQorCisgICAgdm9pZCBzdGFydCgpOworCisgICAgV29ya2VyUnVuTG9vcCYg
cnVuTG9vcCgpIHsgcmV0dXJuIG1fcnVuTG9vcDsgfQorICAgIFRocmVhZCogdGhyZWFkKCkgY29u
c3QgeyByZXR1cm4gbV90aHJlYWQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBB
dWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKKworICAgIHZvaWQg
cnVuRXZlbnRMb29wKCk7CisgICAgdm9pZCB3b3JrbGV0VGhyZWFkKCk7CisKKyAgICBSZWZQdHI8
VGhyZWFkPiBtX3RocmVhZDsKKyAgICBXb3JrZXJSdW5Mb29wIG1fcnVuTG9vcDsKKyAgICBXb3Jr
bGV0UGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CisgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlPiBtX3dvcmtsZXRHbG9iYWxTY29wZTsKKyAgICBMb2NrIG1fdGhyZWFkQ3JlYXRpb25B
bmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDAyYjVmYTA0ZmVkZDkz
ZWU5YzNhMmQ5NTMwMzA3ZDIxMDk0NGYzZTYuLmNkYzAzY2ZhYzRkODc3YTcwZWM1M2VhYjhiYTkz
Y2MzNzU2MDg3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEJhc2VBdWRpb0NvbnRl
eHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRpb0NvbnRl
eHRPcHRpb25zCiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9n
SWRlbnRpZmllcih1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xl
dChBdWRpb1dvcmtsZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6
Y3JlYXRlKGRvY3VtZW50KSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCks
ICp0aGlzKSkKIHsKICAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBk
aWUgb25seSBhZnRlciBwYWdlIG5hdmlnYXRlLgpAQCAtMTYxLDcgKzE2MSw3IEBAIEJhc2VBdWRp
b0NvbnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBu
dW1iZXJPZkNoYW5uZWxzCiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAs
IG1fbG9nSWRlbnRpZmllcih1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1f
d29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29y
a2xldDo6Y3JlYXRlKGRvY3VtZW50KSkKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQog
ICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKSwgKnRoaXMpKQogICAgICwgbV9y
ZW5kZXJUYXJnZXQoV1RGTW92ZShyZW5kZXJUYXJnZXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKaW5kZXggZGY5MzVhNDA4
ZjRjYjA0M2E3ZDg5N2RiNjM3M2I0MTQ3N2Q4ZDc0OC4uYmNkNjgzMDAxOWM2ODYxOTcxMWY3MWZh
YWUxZDg1YTZiOTg0ZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCkBAIC00Miw3ICs0Miw3IEBACiAgICAgLy8gQWxs
IHBhbm5pbmcgaXMgcmVsYXRpdmUgdG8gdGhpcyBsaXN0ZW5lci4KICAgICByZWFkb25seSBhdHRy
aWJ1dGUgQXVkaW9MaXN0ZW5lciBsaXN0ZW5lcjsKIAotICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVD
b250ZXh0LCBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRl
IEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7CisgICAgW1NhbWVPYmplY3QsIFNlY3VyZUNvbnRl
eHQsIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0QVBJXSByZWFkb25seSBhdHRyaWJ1dGUg
QXVkaW9Xb3JrbGV0IGF1ZGlvV29ya2xldDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRp
b0NvbnRleHRTdGF0ZSBzdGF0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhdGVj
aGFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1
bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNzUxZGU5MThjZTFkYzM2
YTFjNzllOTUwM2M5MjhmNGY4OWYwOTZiYy4uYWUzNGZmYmEyM2NkYTE2Y2Q5YWE3NDYwZTdhODcy
ZTc5ODIxM2U4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9E
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsMTAgKzMw
LDEzIEBACiAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3Rp
bmF0aW9uLmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogCkBAIC05OSwxOCArMTAyLDMwIEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlOjplbmFibGVJbnB1dChjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCiAgICAgICAgICAg
ICAvLyBSZS1jcmVhdGUgZGVzdGluYXRpb24uCiAgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dG9wKCk7CiAgICAgICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwotICAgICAgICAgICAgbV9k
ZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRp
c3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAor
RnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGU6OmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpCit7CisgICAgaWYgKGF1dG8q
IHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAg
ICAgIHJldHVybiBbd29ya2xldFByb3h5ID0gbWFrZVJlZigqd29ya2xldFByb3h5KV0oRnVuY3Rp
b248dm9pZCgpPiYmIGZ1bmN0aW9uKSB7CisgICAgICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RU
YXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rp
b24pXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAg
ZnVuY3Rpb24oKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkp
OworICAgICAgICB9OworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2
b2lkPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKIHsKICAg
ICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2Rl
c3RpbmF0aW9uLT5zdGFydCgpOworICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9S
ZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTgsNyAr
MTMzLDcgQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShGdW5jdGlv
bjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwog
ICAgIGlmIChpc0luaXRpYWxpemVkKCkpCi0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7
CisgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5j
dGlvbigpKTsKICAgICBjb250ZXh0KCkucG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwogfQog
CkBAIC0xNjMsNyArMTc4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpzZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbEMKICAgICAgICAgLy8g
UmUtY3JlYXRlIGRlc3RpbmF0aW9uLgogICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAg
ICAgICAgIGNyZWF0ZURlc3RpbmF0aW9uKCk7Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0
KCk7CisgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRG
dW5jdGlvbigpKTsKICAgICB9CiAKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmgKaW5kZXggZWRlMTUzM2MxNjQ4MjljZjFlMjNiYTkzYzI5YTg4NjM0MjAzZTRkMi4uN2Q2
NWUyNWViNTU0MWE5Nzc2ZDUwMDZlMTcyZDIwMDViNDNkZThmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4p
OwogICAgIHZvaWQgY3JlYXRlRGVzdGluYXRpb24oKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4gZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCk7CisKICAg
ICB2b2lkIGluaXRpYWxpemUoKSBmaW5hbDsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIGZpbmFs
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7
CkBAIC02MSw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsKIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFN0cmluZyBtX2lucHV0RGV2aWNl
SWQ7CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiAgICAgZmxv
YXQgbV9zYW1wbGVSYXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4
IGZhYTMzNjUyZWRiMzc2M2IzOWMxZjZiYjQ3ZjZiYjI0ZmEwM2M0MjAuLjUzYjU1NDEzZTkyNjFi
NzcwZWY3YWMzYmFhZDZkODZlMGM4MjllY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAKQEAgLTMxLDcgKzMxLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJB
dWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkF1
ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAj
aW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5o
IgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05Niw5ICs5OSw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQog
ICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9IHRydWU7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyk7CiAKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRp
YWxpemUgaGVyZT8KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBu
dW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5k
ZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRv
IG9mZlRocmVhZFJlbmRlcmluZyA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBvZmZsaW5lUmVu
ZGVyKCk7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwgY3VycmVudFNh
bXBsZUZyYW1lID0gbV9jdXJyZW50U2FtcGxlRnJhbWUsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3Zl
KHByb3RlY3RlZFRoaXMpXSB7CiAgICAgICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSBmYWxz
ZTsKQEAgLTExNCw3ICsxMTUsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0pOwotICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAg
ICB9OworCisgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmts
ZXQoKS5wcm94eSgpKSB7CisgICAgICAgIHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9X
b3JrbGV0R2xvYmFsU2NvcGUoW29mZlRocmVhZFJlbmRlcmluZyA9IFdURk1vdmUob2ZmVGhyZWFk
UmVuZGVyaW5nKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAg
ICAgb2ZmVGhyZWFkUmVuZGVyaW5nKCk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgcHJvYmFibHkgbGltaXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBm
b3Igb2ZmbGluZSBhdWRpby4KKyAgICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJv
ZmZsaW5lIHJlbmRlcmVyIiwgV1RGTW92ZShvZmZUaHJlYWRSZW5kZXJpbmcpLCBUaHJlYWRUeXBl
OjpBdWRpbyk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NWNjMTA4
NTVkOGJhZmVkN2E0NTNjNGJlOWY0ZDkyZGUyNDUzN2JiLi5jN2VjZmRkMTU1YzUyODBkNTg1NGJm
YjUyYmViZWEwMjg0YWRiN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA1LDcgKzIwNSwxMCBAQCBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3Vt
bWluZ0p1bmN0aW9uLmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0Tm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcAog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAogTW9kdWxlcy93ZWJhdWRpby9C
aXF1YWREU1BLZXJuZWwuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3Bw
CkBAIC0yNTc5LDYgKzI1ODIsNyBAQCB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5j
cHAKIHdvcmtsZXRzL1dvcmtsZXQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5j
cHAKIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK3dvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKIHhtbC9D
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCiB4bWwvRE9NUGFyc2VyLmNwcApAQCAtMjY4MCw2ICsy
Njg0LDcgQEAgSlNBdWRpb1RpbWVzdGFtcC5jcHAKIEpTQXVkaW9UcmFjay5jcHAKIEpTQXVkaW9U
cmFja0xpc3QuY3BwCiBKU0F1ZGlvV29ya2xldC5jcHAKK0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmNwcAogSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1
MmRiM2MyMTBjZWFjZTUyOTkxODY4ZWNiMGNiNzM2MzVjZmVkMC4uYjBjMjk3MGY1YWNkZjllMjMz
MGViZjhkN2E5NDAxMmQ1ZTYwMzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQ1MSw2ICsyNDUxLDEwIEBACiAJCTgzM0I5
RTMyMUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkYxRjUwOEQ4
MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzM0I5
RTM0MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkExRjUwOEQ4MDAwRTBFNDI4
IC8qIEpTRmlsZVN5c3RlbUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQy
OCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJDMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0
ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmts
ZXRQZW5kaW5nVGFza3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0JEODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmgg
Ki87IH07CisJCTgzM0JEODE4MjUyNEQ0RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMz
QkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi87IH07
CisJCTgzM0JEODFEMjUyNEQ1MzAwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTky
NTI0RDUxQjAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgz
M0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MUIyNTI0
RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggKi87IH07CiAJCTgz
M0QxQzc2MjREOEQ1NEYwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0QxQzczMjRE
OEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLzsgfTsKIAkJ
ODM0MDdGQzExRThEOUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlD
MTIwMEUwNDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM0M0Q5ODQyNEQwREVFOTAwOUFCRDQ5
IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzQzRDk4MTI0RDBERUE5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxs
YXRvck5vZGUuaCAqLzsgfTsKQEAgLTI1MDgsNiArMjUxMiw3IEBACiAJCTgzOEY4NkRCMUY1MDlF
N0IwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAwRThDRkM1IC8q
IEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1MEI2M0UwMEU5
RDg2QiAvKiBET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5o
ICovOyB9OwogCQk4Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwRTFG
NTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07CisJCTgzOUEwOTVEMjUy
NEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRGMzc2
MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovOyB9OwogCQk4
MzlBMkYyRTFFMjA0QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5
MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JS
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM5QUFGRUIxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJCTgz
OUJFNkQ1MjRGNTg3NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAvKiBJ
SVJGaWx0ZXIuaCAqLzsgfTsKQEAgLTI1MzUsNiArMjU0MCw3IEBACiAJCTgzRDM1QUVDMUM3MTg3
RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEg
LyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkw
MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEg
LyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUwQzFD
QkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJ
Rk8uaCAqLzsgfTsKKwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCAqLzsgfTsKIAkJODNEQjlFMEYyNERBMTk0OTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5
RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi87IH07CiAJCTgzREI5
RTEwMjREQTE5NTcwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwRTI0REExOEI2MDAzN0I0
NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5oICovOyB9OwogCQk4M0UzNTlBMjFCQjEwMzFEMDAy
Q0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1l
RWxlbWVudC5oICovOyB9OwpAQCAtMjU0NCw2ICsyNTUwLDcgQEAKIAkJODNGQjMzNzExRjUwOEE1
NDAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkQxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3MzFGNTA4QTU4MDA5
ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVu
dHJ5LmggKi87IH07CiAJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmls
ZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0ZCMzM2QzFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9Owor
CQk4M0ZDOTk0QjI1MjU1N0VBMDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZDOTk0OTI1MjU1N0U3
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi87IH07CiAJCTgzRkU3Q0E3MURBOUYx
QTcwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNG
RTdDQTgxREE5RjFCNjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIz
N0MgLyogRXZlbnRNb2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFu
Y2VNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0ZFOTAyNjFFMzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07
CkBAIC0xMDU3OCw2ICsxMDU4NSwxMyBAQAogCQk4MzNCOUUyRDFGNTA4RDgwMDBFMEU0MjggLyog
SlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzM0I5RTJFMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5RTJGMUY1MDhEODAwMEUwRTQy
OCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdU
YXNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rh
c2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE1MjUyNEQ0RTIwMDZF
NzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3Bl
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldEdsb2JhbFNj
b3BlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTkyNTI0RDUx
QjAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzM0JEODFBMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
M0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFCQ0MgLyogSlNQZXJm
b3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzM0QxQzczMjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0QxQzc1MjREOEQ1MzMwMEU4MTNE
RiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVm
ZmVyU291cmNlTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNCw2
ICsxMDcxOCw3IEBACiAJCTgzOTk0NzA5MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVt
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUZpbGVTeXN0ZW0u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRDFGNTBCNkYzMDBFOUQ4
NkIgLyogSlNET01GaWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzOTk0NzBFMUY1MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODM5QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdF
IC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdMU3RhdGVUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFB
RkVBMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDc1Miw2ICsxMDc2Nyw3IEBACiAJCTgzRDM1QUYwMUM3MThEODQw
MEY3MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDUxMUYzMjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVs
bEZJRk8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVzaFB1bGxG
SUZPLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNENTExRjUyNTBDMUNBODAw
MkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQdXNoUHVsbEZJRk8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNENkFBRTQy
NTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5RTBBMjREQTE4QjQwMDM3QjQ2OCAvKiBC
aXF1YWRGaWx0ZXJUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJUeXBlLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZp
bHRlclR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0RCOUUwRDI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmls
dGVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDc5MSw2ICsxMDgwNyw5IEBACiAJCTgzRkIzMzZEMUY1MDhB
NEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzRkIzMzZFMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVt
RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3Rl
bUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkYxRjUwOEE0
RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGaWxlU3lzdGVtRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODNGQzk5NDcyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgzRkM5OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgzRkM5OTRBMjUyNTU3RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9k
aWZpZXJJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TW9kaWZp
ZXJJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0E0MURBOUYxNjYw
MDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVSUV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNTFE
QTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFVJRXZlbnRJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYg
KzE3NTYxLDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZF
N0REREQyMEVDNkU4QjAwOEI1QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAw
NDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgz
OTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIw
OEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZG
N0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAog
CQkJCTZGMzVFRkFGMjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcCAqLywKQEAgLTE3NTU0LDggKzE3NTc1LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVE
MzI3MDBDNTk5NEUgLyogSW5saW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2
Qjg1RCAvKiBJbmxpbmVMaW5lQm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0
NTggLyogSW5saW5lTGluZUJveC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAv
KiBJbmxpbmVDb250ZW50QnJlYWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2
RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAw
MDAwMTFCIC8qIElubGluZUxpbmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1
MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3
MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggKi8sCkBAIC0xODcyMCw2ICsxODczOSw4
IEBACiAJCQkJMkU0MzQ2M0QwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCAqLywKIAkJCQkyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5n
UHJveHkuaCAqLywKIAkJCQkyRTQzNDYzRjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0
UHJveHkuaCAqLywKKwkJCQk4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovLAogCQkJCTQxNkUyOUE1MTAyRkE5NjIw
MDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oICovLAogCQkJCTJFNDM0NjQwMEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmNwcCAqLywKIAkJCQkyRTQzNDY0MTBGNTQ2QTgy
MDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5oICovLApAQCAtMTk3MzgsOCArMTk3NTksMTEgQEAK
IAkJCQk0QkRFQTMyNjIxN0ZFMkZBMDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmNwcCAq
LywKIAkJCQk0QkRFQTMyNDIxN0ZFMkU0MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmgg
Ki8sCiAJCQkJNEJERUEzMkEyMTgwMTA3MjAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5p
ZGwgKi8sCisJCQkJODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29w
ZVByb3h5LmggKi8sCiAJCQkJODNBQ0QwMTAyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRp
b25zLmggKi8sCiAJCQkJODNBQ0QwMTIyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25z
LmlkbCAqLywKKwkJCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdU
YXNrcy5jcHAgKi8sCisJCQkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5k
aW5nVGFza3MuaCAqLywKIAkJCQk0QkRFQTMyOTIxODAwNDBDMDA1MkRGQ0QgLyogV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuY3BwICovLAogCQkJCTRCREVBMzI3MjE4MDAzRjcwMDUyREZDRCAvKiBX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovLAogCQkJKTsKQEAgLTI5ODU4LDExICsyOTg4Miwx
OCBAQAogCQkJCTgzQjk4NzA2MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuY3BwICov
LAogCQkJCTgzQjk4NzAxMjUyMjVGMEMwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCAqLywKIAkJ
CQk4M0I5ODZGRDI1MjI1RjBCMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmlkbCAqLywKKwkJCQk4
MzNCRDgxQTI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICov
LAorCQkJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5oICovLAorCQkJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5pZGwgKi8sCisJCQkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKKwkJCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMg
LyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQk4M0I5ODcwMzI1MjI1RjBD
MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgKi8sCiAJCQkJODNCOTg3MDcyNTIyNUYw
RTAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUuaCAqLywKIAkJCQk4M0I5ODcwNDI1MjI1RjBE
MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgKi8sCiAJCQkJODNCOTg3MDAyNTIyNUYw
QjAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmggKi8sCiAJCQkJODNCOTg3MDUy
NTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCAqLywKKwkJCQk4
M0ZDOTk0QTI1MjU1N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLywKKwkJ
CQk4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8sCiAJ
CQkJODMxOThGQkIyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAog
CQkJCTgzMTk4RkJFMjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJ
CQkJODMxOThGQkQyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApA
QCAtMzA0NjcsOCArMzA0OTgsMTEgQEAKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYgLyog
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYw
OEIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4M0I5ODcwQjI1MjI1RjdEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MDkyNTIy
NUY3MjAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
Qjk4NzBBMjUyMjVGNzYwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRo
cmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2
RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTI0NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMzE3NzIsNiArMzE4MDYsNyBAQAogCQkJCUNEMDYzRjgzMUUy
M0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OENGRjVFNTBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRC
cmVha2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTdDQjUyRTE4MkEzRUZDMDA3OUE2NDcgLyog
SW5saW5lRWxlbWVudEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTMwQTE1NUEwNTAw
MEE0MjM0IC8qIElubGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4
QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMTc4MCw3ICszMTgxNSw2IEBACiAJCQkJQkNFNzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8q
IElubGluZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBD
NTk5NEUgLyogSW5saW5lTGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCMjQwMDUyM0RGRjEy
ODAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRTE5ODE3
MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RjkxNDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdl
b21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEgLyog
SW5saW5lTGluZVJ1bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU5NSw2ICszNDYyOSw4IEBACiAJ
CQkJMUFCQzcxMDkxNzBFNUUxQjAwRjlBOUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtl
ck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Q2QUFFNjI1
MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMx
NEUgLyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUz
MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUI4MUNDRjFGQUE0NERFMDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTM0NjA5LDcgKzM0NjQ1LDkgQEAKIAkJCQk0QkRFQTMyMDIxN0VDNTVGMDA1MkRG
Q0QgLyogV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEI3RjlDNTIyMTgzQjVFNTAwMUNF
QkEwIC8qIFdvcmtsZXRDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMy
NTIxN0ZFMkU0MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4MzNCRDgxODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQUNEMDEzMjUyMjlFMTAwMDBEMTI0RSAvKiBXb3JrbGV0
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8q
IFdvcmtsZXRQZW5kaW5nVGFza3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREVBMzI4MjE4MDAz
RjcwMDUyREZDRCAvKiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTMzMDlFMjQwOTlFNjQ5MjAwNTZFNTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdy
aXRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYyYjBkNmQ1NGE0ZjAw
MDJkZWU0YmQyZGZjN2VjNmVkMTM3ZDg0NjguLmIzYThkNWIxM2M0NTExY2Y3ODQyNTc1OWQ2MDUx
NDgxMTE0OTBjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IG1hY3JvKEF1ZGlvTGlzdGVuZXIpIFwKICAgICBtYWNybyhBdWRpb1BhcmFtTWFwKSBcCiAgICAg
bWFjcm8oQXVkaW9Xb3JrbGV0KSBcCisgICAgbWFjcm8oQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUp
IFwKICAgICBtYWNybyhBdWRpb1dvcmtsZXROb2RlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpT
Q2xpZW50RGF0YS5jcHAKaW5kZXggMzhkZjY3NzUyZTkwYTZhMmUwMTc0Y2ZhZmJjNGY4NzFlYTgx
YzE0YS4uZGE0NmU4NWMzNDAzYTJlODA3NjM4MjM4MjVkYjg3NDE5ZDc4MWRmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkRPTUdDT3V0cHV0Q29uc3RyYWludC5oIgogI2lu
Y2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJ1aWx0
aW5Db25zdHJ1Y3RvckJhc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNjgsOSAr
NjksMTIgQEAgSlNWTUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0
R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxT
Y29wZT4oKSkKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICAsIG1faGVhcENlbGxU
eXBlRm9ySlNQYWludFdvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3Jl
YXRlPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KCkpCi0gICAgLCBtX2hlYXBDZWxsVHlwZUZv
ckpTV29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3Jr
bGV0R2xvYmFsU2NvcGU+KCkpCisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkK
KyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklz
b0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjZW5k
aWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9y
SlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVh
dGU8SlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0PigpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgzYjgyMzRjMzM1ZGVk
MTQ1MGQxODEzZmU4NDI5N2E5NzU4Mzg5NTEuLmI4NDQwZTg3NzBlNDcyOTFmN2VlMjA2MzE5OWVh
MDVjM2M0YmIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNDbGllbnREYXRhLmgKQEAgLTk5LDkgKzk5LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hl
YXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xl
dEdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9o
ZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKKyNlbmRpZgorI2lmIEVOQUJMRShX
RUJfQVVESU8pCisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBD
ZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CiAjZW5kaWYKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+
IG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IGQwYTU0N2FjNTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2MDkuLmUzOTAxODBmNTcx
ZjllMWUzNWJjOTIzYjFkNzcxZDRiOTVjZWRhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1N0cm9uZy5oPgpAQCAtNDQsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xh
c3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCi1jbGFz
cyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIHsKK2NsYXNzIFdvcmtlclNjcmlwdENvbnRyb2xsZXIg
OiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2Nv
cGUqKTsKQEAgLTY3LDcgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigp
L2lzRXhlY3V0aW9uRm9yYmlkZGVuKCkgdG8gZ3VhcmQgYWdhaW5zdCByZWVudHJ5IGludG8gSlMu
CiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCiAgICAgdm9pZCBzY2hlZHVs
ZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7Ci0gICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9u
KCkgY29uc3Q7CisgICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7
CiAKICAgICAvLyBDYWxsZWQgb24gV29ya2VyIHRocmVhZCB3aGVuIEpTIGV4aXRzIHdpdGggdGVy
bWluYXRpb24gZXhjZXB0aW9uIGNhdXNlZCBieSBmb3JiaWRFeGVjdXRpb24oKSByZXF1ZXN0LAog
ICAgIC8vIG9yIGJ5IFdvcmtlciB0aHJlYWQgdGVybWluYXRpb24gY29kZSB0byBwcmV2ZW50IGZ1
dHVyZSBlbnRyeSBpbnRvIEpTLgpAQCAtNzksMTEgKzgwLDExIEBAIHB1YmxpYzoKIAogICAgIEpT
Qzo6Vk0mIHZtKCkgeyByZXR1cm4gKm1fdm07IH0KICAgICAKLSAgICB2b2lkIHJlbGVhc2VIZWFw
QWNjZXNzKCk7Ci0gICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpOworICAgIHZvaWQgcmVsZWFz
ZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7
CiAKLSAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6
OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3Rp
ZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayk7
CisgICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpU
aW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0
Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJh
Y2spIGZpbmFsOwogCiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CiAg
ICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDEwZjNlNjY4
NjY1NDVhNWE2MGE5ZWU1YTlmODY3NGFlM2MyODQ5MzIuLjU4ZmQxYTdhMjZmZGQxZGFjNGRiMmI3
MGIxYzU0NTM3NWJjZDRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03NzUsNyArNzc1LDcgQEAgc3ViIFNob3VsZFVz
ZUdsb2JhbE9iamVjdFByb3RvdHlwZQogCiAgICAgIyBGb3Igd29ya2VycywgdGhlIGdsb2JhbCBv
YmplY3QgaXMgYSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSI7Ci0gICAgIyBGb3Ig
d29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
CisgICAgIyBGb3Igd29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUgb3IgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBp
ZiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJXb3JrbGV0R2xvYmFsU2NvcGUiOwogCiAgICAg
cmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCBiZWUwZmM1MDY5
MTlmY2NmZDE3NWY2OWNjNTIzYzU3NTZiYzA4YTg4Li5mNGM4NGJjODhjNDExNDVkZDE2ZWQzODNk
NGQzOWM0MmNjNWQ2OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbApAQCAtNDcsNiArNDcsNyBAQCBteSAkZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZTsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CitteSAk
YXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOwogbXkg
JGlkbEF0dHJpYnV0ZXNGaWxlOwpAQCAtNjksNiArNzAsNyBAQCBHZXRPcHRpb25zKCdkZWZpbmVz
PXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlLAogICAgICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1z
JyA9PiBcJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdhdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRhdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlPXMnID0+IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAg
ICAgJ3N1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcywKICAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmlidXRl
c0ZpbGUsCkBAIC04Myw2ICs4NSw3IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxl
IHVzaW5nIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGCiBkaWUoJ011
c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZp
bmVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVj
aWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1h
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQo
JGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3Bl
Y2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUuJykgdW5sZXNzIGRlZmluZWQoJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpIHx8
ICFkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogZGllKCdNdXN0IHNwZWNpZnkgdGhl
IGZpbGUgbGlzdGluZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykgdW5sZXNz
IGRlZmluZWQoJGlkbEZpbGVOYW1lc0xpc3QpOwogZGllKCdNdXN0IHNwZWNpZnkgSURMIGF0dHJp
YnV0ZXMgZmlsZSB1c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRp
ZGxBdHRyaWJ1dGVzRmlsZSk7CkBAIC05NSw2ICs5OCw3IEBAICRkZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGRlZGljYXRlZFdv
cmtlCiAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBh
dGhJZk5lZWRlZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAk
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRwYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkYXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgPSBDeWd3aW5Q
YXRoSWZOZWVkZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYgZGVmaW5lZCgkc3VwcGxl
bWVudGFsTWFrZWZpbGVEZXBzKTsKIAogbXkgQGlkbEZpbGVOYW1lczsKQEAgLTEzNSw2ICsxMzks
NyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7
CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkg
JHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRwYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRhdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNDb2RlID0gIiI7CiAKIG15ICRpc29TdWJzcGFjZXNIZWFkZXJDb2RlID0gPDxFTkQ7CkBA
IC0yMzcsNiArMjQyLDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRs
RmlsZU5hbWVIYXNoKSB7CiAgICAgICAgICAgICAgICAgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xv
YmFsQ29udGV4dCBlcSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAgICAgICRwYWludFdv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAg
ICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiQXVkaW9Xb3JrbGV0IikgeworICAg
ICAgICAgICAgICAgICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0g
JGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAk
dGVzdEdsb2JhbENvbnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgJHRlc3RHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2Ug
ewpAQCAtMjU0LDYgKzI2MSw3IEBAIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvCiBHZW5lcmF0ZVBh
cnRpYWxJbnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldvcmtsZXRHbG9iYWxT
Y29wZSIsICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50
V29ya2xldEdsb2JhbFNjb3BlIiwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0
ZVBhcnRpYWxJbnRlcmZhY2UoIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIiwgJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRlc3RHbG9iYWxDb250
ZXh0TmFtZSwgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0ZXN0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwog
CiBpZiAoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNT
U1BhaW50V29ya2xldC5jcHAKaW5kZXggMTM2ZTRmMTRlY2ZlNWU0YjlmOWM5NTIwMjc0MzlhNGEz
MWQ0OTY0NS4uMjg1ZDU2ZDBjNmUwZTdlYTUxZTZkNDZjOWEzYzFmOTFhOTdmMmUwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKQEAgLTU2LDExICs1NiwxOCBA
QCBjb25zdCBjaGFyKiBET01DU1NQYWludFdvcmtsZXQ6OnN1cHBsZW1lbnROYW1lKCkKICAgICBy
ZXR1cm4gIkRPTUNTU1BhaW50V29ya2xldCI7CiB9CiAKLXZvaWQgUGFpbnRXb3JrbGV0OjphZGRN
b2R1bGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xl
dE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKKy8vIEZJWE1F
OiBHZXQgcmlkIG9mIHRoaXMgb3ZlcnJpZGUgYW5kIHJlbHkgb24gdGhlIHN0YW5kYXJkLWNvbXBs
aWFudCBXb3JrbGV0OjphZGRNb2R1bGUoKSBpbnN0ZWFkLgordm9pZCBQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRo
aXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNo
ZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIGRvd25sb2FkIHRoZSBzb3VyY2UgZnJvbSB0aGUgVVJMCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTEzNgotICAgIGF1dG8gbWF5YmVDb250ZXh0
ID0gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZShkb2N1bWVudCwgU2NyaXB0U291
cmNlQ29kZShtb2R1bGVVUkwpKTsKKyAgICBhdXRvIG1heWJlQ29udGV4dCA9IFBhaW50V29ya2xl
dEdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoKmRvY3VtZW50LCBTY3JpcHRTb3VyY2VDb2RlKG1vZHVs
ZVVSTCkpOwogICAgIGlmIChVTkxJS0VMWSghbWF5YmVDb250ZXh0KSkgewogICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBPdXRPZk1lbW9yeUVycm9yIH0pOwogICAgICAgICByZXR1
cm47CkBAIC03MCw5ICs3NywxNSBAQCB2b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxlKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZQogCiAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhjb250ZXh0LT5wYWludERlZmluaXRpb25Mb2NrKCkpOwogICAg
IGZvciAoYXV0byYgbmFtZSA6IGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbk1hcCgpLmtleXMoKSkK
LSAgICAgICAgZG9jdW1lbnQuc2V0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVGb3JOYW1lKG5hbWUs
IG1ha2VSZWYoY29udGV4dC5nZXQoKSkpOworICAgICAgICBkb2N1bWVudC0+c2V0UGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVGb3JOYW1lKG5hbWUsIG1ha2VSZWYoY29udGV4dC5nZXQoKSkpOwogICAg
IHByb21pc2UucmVzb2x2ZSgpOwogfQogCitWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVBy
b3h5Pj4gUGFpbnRXb3JrbGV0OjpjcmVhdGVHbG9iYWxTY29wZXMoKQoreworICAgIC8vIEZJWE1F
OiBBZGQgaW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIHsgfTsKK30KKwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgKaW5kZXggYjliMTM4NWJiMDhhM2Yx
Y2VkNGViMmI0MjQwM2RkMTA3ZTVhODRlZS4uMDk0YWU2YzEyZjc1MTkzODViYTFhNjJkN2JiMjA0
ODIyM2YyYzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29y
a2xldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaApAQCAt
NDEsMTUgKzQxLDIxIEBAIGNsYXNzIERPTUNTU05hbWVzcGFjZTsKIAogY2xhc3MgUGFpbnRXb3Jr
bGV0IGZpbmFsIDogcHVibGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UGFp
bnRXb3JrbGV0PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8UGFpbnRXb3JrbGV0PiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UGFpbnRXb3JrbGV0KTsKKyAgICAgICAgYXV0byB3b3JrbGV0ID0gYWRvcHRSZWYoKm5ldyBQYWlu
dFdvcmtsZXQoZG9jdW1lbnQpKTsKKyAgICAgICAgd29ya2xldC0+c3VzcGVuZElmTmVlZGVkKCk7
CisgICAgICAgIHJldHVybiB3b3JrbGV0OwogICAgIH0KIAotICAgIHZvaWQgYWRkTW9kdWxlKERv
Y3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICAvLyBXb3JrbGV0LgorICAgIHZvaWQg
YWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7CisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xv
YmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFsOwogCiBwcml2YXRlOgot
ICAgIFBhaW50V29ya2xldCgpID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBQYWludFdvcmtsZXQo
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6IFdvcmtsZXQoZG9jdW1lbnQpCisgICAgeyB9
CiB9OwogCiBjbGFzcyBET01DU1NQYWludFdvcmtsZXQgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVu
dDxET01DU1NOYW1lc3BhY2U+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDJhY2YzZjE4
Y2FkYzY4NmIzMWVjM2FkMDViYzU4YTAxYjBlZjM0YWUuLjhlOWIyMTkwZjhlMmIxYTc0OWQzM2Zi
MzJjMTdkMGU5ZmJjZGNlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODQzOSw3ICs4
NDM5LDcgQEAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyJiBEb2N1
bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb24KIFBhaW50V29ya2xldCYgRG9jdW1lbnQ6
OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CiAgICAgaWYgKCFtX3BhaW50V29ya2xldCkKLSAgICAg
ICAgbV9wYWludFdvcmtsZXQgPSBQYWludFdvcmtsZXQ6OmNyZWF0ZSgpOworICAgICAgICBtX3Bh
aW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1f
cGFpbnRXb3JrbGV0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCmluZGV4IDA2YTNlYzkwNjU1ODI2ZmJjZDkxYTgzYjY0MWUyN2Y1OWU3NWRlNjAu
LjBjY2NjMTE4MTYzZjk0ZTVlZjI1ODcwMmUyMjhiMjFkOWQ2MmQ1ZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0xMjcsNiArMTI3LDExIEBA
IHB1YmxpYzoKICAgICBib29sIGNzc1BhaW50aW5nQVBJRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fQ1NTUGFpbnRpbmdBUElFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisgICAgdm9pZCBzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IG1fYXVkaW9Xb3JrbGV0QVBJRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgYXVkaW9X
b3JrbGV0QVBJRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9Xb3JrbGV0QVBJRW5hYmxl
ZDsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogICAgIHZvaWQgc2V0Q1NT
VHlwZWRPTUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9DU1NUeXBlZE9NRW5hYmxlZCA9IGlz
RW5hYmxlZDsgfQogICAgIGJvb2wgY3NzVHlwZWRPTUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X0NTU1R5cGVkT01FbmFibGVkOyB9CkBAIC0zMDIsNiArMzA3LDkgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBib29sIG1fQ1NTUGFpbnRpbmdBUElFbmFibGVk
IHsgZmFsc2UgfTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgYm9vbCBtX2F1
ZGlvV29ya2xldEFQSUVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NT
X1RZUEVEX09NKQogICAgIGJvb2wgbV9DU1NUeXBlZE9NRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNzkwZGI0YjdlOTZmYTk2ZGY4OGZkNjc4Y2FlMGM3
MmU1MjNhODE5OS4uN2NkNWRmMTBmZmQxMGZmNzNkNDkzYmUxYzA5YTgxOWQyNDUyNjQwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMjU5LDggKzI1OSw2IEBAIHByZWZpeGVkV2Vi
QXVkaW9FbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogbW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlv
RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKLWF1ZGlvV29ya2xldEVuYWJsZWQ6Ci0gIGluaXRp
YWw6IGZhbHNlCiBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNl
CiBmdWxsU2NyZWVuRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3ku
aAppbmRleCA0M2Q1NzY1Mjk4YzA2NzkyYzZkZGNlODVjNDJhMGEzZjU3NWE4NzgzLi45ODUyMDVk
YWJhYWI4ZGEzODZmNjU2NGQ4MDk2ZmQyODY1NWMxYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zNyw3ICszNyw3IEBAIHN0cnVjdCBOb3dQbGF5aW5nSW5m
bzsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhU3RyYXRlZ3kgewogcHVibGljOgogI2lmIEVO
QUJMRShXRUJfQVVESU8pCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5h
dGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKKyAgICB2aXJ0dWFsIFJlZjxBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAogICAgICAgICBBdWRpb0lPQ2FsbGJhY2sm
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkg
PSAwOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5kZXggZGViNzU3ZGM0NWU1Nzg1ODUy
MTdmZDNiZWMwNzEyYjY0NGQ3NTM3NC4uMTYwYzY1NzhlMTVlZDVlYTc1MjVkYzc2OGJkNGVmM2Zk
Yzc0ZjRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVz
dGluYXRpb24uaApAQCAtMzAsNiArMzAsNyBAQAogI2RlZmluZSBBdWRpb0Rlc3RpbmF0aW9uX2gK
IAogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDAsMTYgKzQxLDE2IEBAIGNsYXNzIEF1ZGlvSU9DYWxsYmFjazsKIC8vIFRoZSBhdWRp
byBoYXJkd2FyZSBwZXJpb2RpY2FsbHkgY2FsbHMgdGhlIEF1ZGlvSU9DYWxsYmFjayByZW5kZXIo
KSBtZXRob2QgYXNraW5nIGl0IHRvIHJlbmRlci9vdXRwdXQgdGhlIG5leHQgcmVuZGVyIHF1YW50
dW0gb2YgYXVkaW8uCiAvLyBJdCBvcHRpb25hbGx5IHdpbGwgcGFzcyBpbiBsb2NhbC9saXZlIGF1
ZGlvIGlucHV0IHdoZW4gaXQgY2FsbHMgcmVuZGVyKCkuCiAKLWNsYXNzIEF1ZGlvRGVzdGluYXRp
b24geworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxBdWRpb0Rlc3RpbmF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgLy8gUGFzcyBpbiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzID4gMCkgaWYgbGl2ZS9s
b2NhbCBhdWRpbyBpbnB1dCBpcyBkZXNpcmVkLgogICAgIC8vIFBvcnQtc3BlY2lmaWMgZGV2aWNl
IGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIGZvciBsaXZlL2xvY2FsIGlucHV0IHN0cmVhbXMg
Y2FuIGJlIHBhc3NlZCBpbiB0aGUgaW5wdXREZXZpY2VJZC4KLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2Fs
bGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbigp
ID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgaXNQbGF5aW5nKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApp
bmRleCA3NGFkNjE2ZmE5ZTI1ZGViOTk5Yzk2YjY2N2VkMTQ5NDcwYmY2ODcyLi5kYTRlNGIyYzhi
NjA3MzQ4M2Y5ZmFkYzY3YmFmYmZmZjg2ODVmOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAgY29uc3RleHByIHNpemVfdCBmaWZvU2l6ZSA9IDk2ICogQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogCiBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
Q29jb2FPdmVycmlkZSBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlID0gbnVs
bHB0cjsKIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRp
b246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5h
dGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSB1c2Ugb2YgaW5w
dXREZXZpY2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNTUsNyArNTUsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbAogICAgIGlmIChBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJy
aWRlKQogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlk
ZShjYWxsYmFjaywgc2FtcGxlUmF0ZSk7CiAKLSAgICBhdXRvIGRlc3RpbmF0aW9uID0gbWFrZVVu
aXF1ZTxBdWRpb0Rlc3RpbmF0aW9uQ29jb2E+KGNhbGxiYWNrLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uID0gYWRvcHRSZWYoKm5ldyBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNh
bXBsZVJhdGUpKTsKICAgICBkZXN0aW5hdGlvbi0+Y29uZmlndXJlKCk7CiAgICAgcmV0dXJuIGRl
c3RpbmF0aW9uOwogfQpAQCAtMTAzLDkgKzEwMywxMCBAQCB1bnNpZ25lZCBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OmZyYW1lc1BlckJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyQnVz
LT5sZW5ndGgoKTsKIH0KIAotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KCkKK3Zv
aWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZv
aWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKIHsKICAgICBMT0coTWVkaWEsICJB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0Iik7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBPU1N0YXR1cyByZXN1
bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVuaXQpOwogCiAgICAgaWYgKCFyZXN1
bHQpCkBAIC0xMTYsNiArMTE3LDcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3Ao
KQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCIpOwogICAg
IE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9vdXRwdXRVbml0KTsKKyAg
ICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBudWxscHRyOwogCiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIHNldElzUGxheWluZyhmYWxzZSk7CkBAIC0xMjMsNiArMTI1LDcgQEAgdm9pZCBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AoKQogCiB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6c2V0SXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQogeworICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9pc1BsYXlpbmdMb2NrKTsKICAgICBpZiAobV9pc1BsYXlpbmcgPT0gaXNQbGF5aW5n
KQogICAgICAgICByZXR1cm47CiAKQEAgLTE3MywxOCArMTc2LDM4IEBAIE9TU3RhdHVzIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKGNvbnN0IEF1ZGlvVGltZVN0YW1wKiB0aW1lc3RhbXAs
IFVJbnQzMiBuCiAKICAgICAvLyBBc3NvY2lhdGUgdGhlIGRlc3RpbmF0aW9uIGRhdGEgYXJyYXkg
d2l0aCB0aGUgb3V0cHV0IGJ1cyB0aGVuIGZpbGwgdGhlIEZJRk8uCiAgICAgYXNzaWduQXVkaW9C
dWZmZXJzVG9CdXMoYnVmZmVycywgbV9vdXRwdXRCdXMuZ2V0KCksIG51bWJlck9mQnVmZmVycywg
bnVtYmVyT2ZGcmFtZXMsIDAsIG51bWJlck9mRnJhbWVzKTsKLSAgICBzaXplX3QgZnJhbWVzVG9S
ZW5kZXIgPSBtX2ZpZm8tPnB1bGwobV9vdXRwdXRCdXMucHRyKCksIG51bWJlck9mRnJhbWVzKTsK
KyAgICBzaXplX3QgZnJhbWVzVG9SZW5kZXI7CiAKKyAgICB7CisgICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9maWZvTG9jayk7CisgICAgICAgIGZyYW1lc1RvUmVuZGVyID0gbV9maWZv
LT5wdWxsKG1fb3V0cHV0QnVzLnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAg
Ly8gV2hlbiB0aGVyZSBpcyBhIEF1ZGlvV29ya2xldCwgd2UgZG8gcmVuZGVyaW5nIG9uIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisgICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgewor
ICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgZnJhbWVzVG9SZW5kZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBz
dGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9pc1BsYXlpbmdMb2NrLCBzdGQ6OnRyeV90b19s
b2NrKTsKKyAgICAgICAgICAgIGlmIChsb2NrLm93bnNfbG9jaygpICYmIG1faXNQbGF5aW5nKQor
ICAgICAgICAgICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOwor
ICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChm
cmFtZXNUb1JlbmRlcik7CisKKyAgICByZXR1cm4gbm9FcnI7Cit9CisKKy8vIFRoaXMgcnVucyBv
biB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkIHdoZW4gQXVkaW9Xb3JrbGV0IGlzIGVuYWJsZWQsIG9u
IHRoZSBhdWRpbyBkZXZpY2UncyByZW5kZXJpbmcgdGhyZWFkIG90aGVyd2lzZS4KK3ZvaWQgQXVk
aW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXJPblJlbmRlcmluZ1RoZWFkKHNpemVfdCBmcmFtZXNU
b1JlbmRlcikKK3sKICAgICBmb3IgKHNpemVfdCBwdXNoZWRGcmFtZXMgPSAwOyBwdXNoZWRGcmFt
ZXMgPCBmcmFtZXNUb1JlbmRlcjsgcHVzaGVkRnJhbWVzICs9IEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkgewogICAgICAgICBpZiAobV9yZXNhbXBsZXIpCiAgICAgICAgICAgICBt
X3Jlc2FtcGxlci0+cHJvY2Vzcyh0aGlzLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jYWxs
YmFjay5yZW5kZXIoMCwgbV9yZW5kZXJCdXMucHRyKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZSwgbV9vdXRwdXRUaW1lc3RhbXApOwogCisgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9maWZvTG9jayk7CiAgICAgICAgIG1fZmlmby0+cHVzaChtX3JlbmRlckJ1cy5w
dHIoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIG5vRXJyOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0
VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAppbmRleCAwMGRkYTJmYjJhMzdiODNm
MTBlZmE1MjcxYjE3NjhhODBiNDgxMWVjLi4wODk0ZDYyMWEyZjE1MzIyNTEyNzM2NTBiNmU1YTNk
M2VjOTk2ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFz
cyBBdWRpb0J1czsKIGNsYXNzIE11bHRpQ2hhbm5lbFJlc2FtcGxlcjsKIGNsYXNzIFB1c2hQdWxs
RklGTzsKIAotdXNpbmcgQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgPSBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4oKikoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQg
c2FtcGxlUmF0ZSk7Cit1c2luZyBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9
IFJlZjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVS
YXRlKTsKIAogLy8gQW4gQXVkaW9EZXN0aW5hdGlvbiB1c2luZyBDb3JlQXVkaW8ncyBkZWZhdWx0
IG91dHB1dCBBdWRpb1VuaXQKIGNsYXNzIEF1ZGlvRGVzdGluYXRpb25Db2NvYSA6IHB1YmxpYyBB
dWRpb0Rlc3RpbmF0aW9uLCBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92aWRlciB7CkBAIC02NSwxMSAr
NjUsMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBzZXRBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24oQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7CiAKKyAgICBGdW5jdGlvbjx2b2lk
KEZ1bmN0aW9uPHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZDsKKwogcHJpdmF0
ZToKLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwogCi0gICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7CisgICAgdm9pZCByZW5kZXJPblJlbmRlcmluZ1Ro
ZWFkKHNpemVfdCBmcmFtZXNUb1JlbmRlcik7CisKKyAgICBmcmllbmQgUmVmPEF1ZGlvRGVzdGlu
YXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBT
dHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGZsb2F0KTsKICAgICAKICAgICAvLyBBdWRpb1Nv
dXJjZVByb3ZpZGVyLgogICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiwgc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykgZmluYWw7CkBAIC05MSwxMSArOTUsMTQgQEAgcHJpdmF0ZToKICAgICAv
LyBSZXNvbHZlcyB0aGUgYnVmZmVyIHNpemUgbWlzbWF0Y2ggYmV0d2VlbiB0aGUgV2ViQXVkaW8g
ZW5naW5lIGFuZAogICAgIC8vIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBmcm9tIHRoZSBhY3R1YWwg
YXVkaW8gZGV2aWNlLgogICAgIFVuaXF1ZVJlZjxQdXNoUHVsbEZJRk8+IG1fZmlmbzsKKyAgICBM
b2NrIG1fZmlmb0xvY2s7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TXVsdGlDaGFubmVsUmVzYW1w
bGVyPiBtX3Jlc2FtcGxlcjsKICAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRwdXRUaW1lc3RhbXA7
CiAKICAgICBmbG9hdCBtX2NvbnRleHRTYW1wbGVSYXRlOworCisgICAgTG9jayBtX2lzUGxheWlu
Z0xvY2s7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKaW5kZXggOGZkZWI2YTI0MjQ4NDljYWMxN2Ji
ZTkwYWFlNzEyYTg5YTI0ZDEwMC4uYTI5MDRmMjZiMDJjNzE3MGE5NzcyZGE5M2MyZTk2MzY4ZmIw
NzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcApAQCAtMTY1
LDcgKzE2NSw3IEBAIGdib29sZWFuIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OmhhbmRsZU1l
c3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBB
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydCgpCit2b2lkIEF1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXI6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJikKIHsK
ICAgICBBU1NFUlQobV9hdWRpb1NpbmtBdmFpbGFibGUpOwogICAgIGlmICghbV9hdWRpb1NpbmtB
dmFpbGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAppbmRleCBjZmU2
ODkyMDhkMDk2OGE1MWE4YmIxZDFlODdmNmUxOWQwZjIzMTY2Li5kNTUxMDRjODhjY2JjZGZmZmY5
N2M0ZTdhNDk0OTg2Zjk5NmJmOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgcHVibGljOgogICAgIEF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgdmlydHVhbCB+
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpOwogCi0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRp
c3BhdGNoVG9SZW5kZXJUaHJlYWQpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lzUGxheWluZzsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggOWRhYTdkMDE0MWQ4MTA0ZTRmNWM0YzI2NDhiYzhj
NmJlNTI2YzBjOC4uNWExMmNkZTRmY2RmYzU3ZmFkNDJiN2Q5ZThmZTczMjA0MzUwOWQ3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rl
c3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00NSw4ICs0NSw5IEBAIE1vY2tBdWRpb0Rlc3RpbmF0aW9u
Q29jb2E6Ok1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywKIAogTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6fk1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQo
KQordm9pZCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1
bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKIHsKKyAgICBtX2Rp
c3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwog
ICAgIG1fdGltZXIuc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyB7IG1fbnVtYmVyT2ZGcmFtZXNUb1By
b2Nlc3MgLyBzYW1wbGVSYXRlKCkgfSk7CiAgICAgc2V0SXNQbGF5aW5nKHRydWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuaAppbmRleCBkNGVhZTgzMzQzNWMwYTYwNDU1ZWQwYjk2OTI1NjhjOGVjNjNmMzZk
Li5hOGQyOGM0ZWQxYmJlZmZkMzMwOTQ1MGRhYWYzMjllYmEyNTM0YzE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaApAQCAtMzgsMTIgKzM4LDE2IEBAIGNsYXNzIEF1ZGlvSU9DYWxsYmFjazsKIGNsYXNzIE1v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbkNv
Y29hIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
IGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKSB7IHJldHVybiBtYWtlVW5pcXVlPE1vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E+KGNhbGxiYWNrLCBzYW1wbGVSYXRlKTsgfQorICAgIHN0YXRpYyBS
ZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGZs
b2F0IHNhbXBsZVJhdGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxiYWNrLCBzYW1wbGVSYXRlKSk7CisgICAgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShBdWRpb0lPQ2FsbGJh
Y2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5Nb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydCgpIGZp
bmFsOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYm
KSBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAogICAgIHZvaWQgdGljaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBiMmYzMzEy
Y2Y0YjA0NjFiODdmYWFhYzM5Y2Q0MmEwNjNlNThhYzczLi4xZmU5Mzk4N2VmOTYxZmRmYmUzOGY0
N2NhNjcxYWY1ZmRhOThkOWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcApAQCAtNTQ0LDQgKzU0NCw5IEBAIFJlZmVycmVyUG9saWN5IFdvcmtlckds
b2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVmZXJyZXJQ
b2xpY3k7CiB9CiAKK1RocmVhZCogV29ya2VyR2xvYmFsU2NvcGU6OnVuZGVybHlpbmdUaHJlYWQo
KSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC50aHJlYWQoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
CmluZGV4IGJkOWNmMTQwZGQ1MmZiODQ5OGI5ZmE0MTA2MGM5M2FiZmE2ODM4NWUuLjkwZGYzYjZh
ZjNkNjNlYzYxYWVjOWExMjNjMDg3N2U3OWUzNGIyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbWFn
ZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgIldvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5o
IgpAQCAtNTksNyArNjAsNyBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5l
Y3Rpb25Qcm94eTsKIH0KIAotY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9i
YWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxpdGllcyB7CitjbGFzcyBXb3JrZXJH
bG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGlj
IFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMsIHB1YmxpYyBXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrZXJHbG9iYWxT
Y29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGUoKTsKQEAgLTg1
LDEzICs4NiwxNSBAQCBwdWJsaWM6CiAgICAgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uJiBzd0Ns
aWVudENvbm5lY3Rpb24oKTsKICNlbmRpZgogCi0gICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciog
c2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICBXb3JrZXJTY3JpcHRDb250
cm9sbGVyKiBzY3JpcHQoKSBmaW5hbCB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQogICAgIHZv
aWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0cjsgfQogCiAgICAgV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuICpt
X2luc3BlY3RvckNvbnRyb2xsZXI7IH0KIAogICAgIFdvcmtlclRocmVhZCYgdGhyZWFkKCkgY29u
c3QgeyByZXR1cm4gbV90aHJlYWQ7IH0KIAorICAgIFRocmVhZCogdW5kZXJseWluZ1RocmVhZCgp
IGNvbnN0IGZpbmFsOworCiAgICAgdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aGFzUGVu
ZGluZ0FjdGl2aXR5OwogCiAgICAgdm9pZCBwb3N0VGFzayhUYXNrJiYpIGZpbmFsOyAvLyBFeGVj
dXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgpAQCAtMTE5
LDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNp
bmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBib29sIGlzQ2xvc2luZygpIHsgcmV0dXJuIG1f
Y2xvc2luZzsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
bG9zaW5nOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJ
bnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1
NDhlMDg0OGJlMzUyMmI2YWQ5YzMyODUzMzk3NDZjN2MzOTc0MjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKQEAg
LTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNl
IFdURiB7CitjbGFzcyBUaHJlYWQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoKSA9
IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIFdURjo6VGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSA9IDA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
OWJmODNlOTMwZGQxNjVkOGEzMzA0NzA1MmFkNTVkMjJmYWZhNzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxv
b3BUaW1lci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFz
ZUhlYXBBY2Nlc3MoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNS
dW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGlt
ZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworCisgICAgdmlydHVhbCBib29sIGlzVGVybWlu
YXRpbmdFeGVjdXRpb24oKSBjb25zdCA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAppbmRleCA2NmVjZDUzNmY4
MTNkMDI5YzQ5N2YxYWVhN2YyMTllZGZjNzViMzc1Li5iYjYxZmM1ZjJhOTdkYjg0YjExM2JlMjIz
YzdhN2FkYzcxOWI0OTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAjaW5j
bHVkZSAiVGhyZWFkVGltZXJzLmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgotI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogI2lmIFVTRShHTElCKQpAQCAt
MTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgSXNGb3JEZWJ1Z2dpbmcgbV9pc0ZvckRlYnVn
Z2luZyB7IElzRm9yRGVidWdnaW5nOjpObyB9OwogfTsKIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpy
dW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBSdW5Mb29wU2V0dXAg
c2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Ok5vKTsKICAgICBNb2Rl
UHJlZGljYXRlIG1vZGVQcmVkaWNhdGUoZGVmYXVsdE1vZGUoKSk7CkBAIC0xNDMsMTMgKzE0Mywx
MyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkK
ICAgICBydW5DbGVhbnVwVGFza3MoY29udGV4dCk7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyR2xvYmFsU2NvcGUmIGNv
bnRleHQpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluRGVidWdn
ZXJNb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJiBjb250ZXh0KQogewogICAgIFJ1bkxv
b3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6WWVzKTsK
ICAgICByZXR1cm4gcnVuSW5Nb2RlKCZjb250ZXh0LCBNb2RlUHJlZGljYXRlIHsgZGVidWdnZXJN
b2RlKCkgfSwgV2FpdEZvck1lc3NhZ2UpOwogfQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdv
cmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
V29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRNb2RlKQogewogICAgIEFTU0VS
VChtb2RlICE9IGRlYnVnZ2VyTW9kZSgpKTsKICAgICBSdW5Mb29wU2V0dXAgc2V0dXAoKnRoaXMs
IFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Ok5vKTsKQEAgLTE1OCwxMCArMTU4LDEwIEBA
IE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckds
b2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2Nv
cGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNhdGUmIHByZWRpY2F0ZSwgV2FpdE1vZGUgd2Fp
dE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgTW9kZVByZWRpY2F0ZSYg
cHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7Ci0g
ICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQo
KSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9PSAmVGhyZWFkOjpj
dXJyZW50KCkpOwogCiAgICAgSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25D
YWxsYmFjayB0aW1lckFkZGVkVGFzayA9IFdURjo6Y3JlYXRlU2hhcmVkVGFzazxKU0M6OkpTUnVu
TG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvblR5cGU+KFt0aGlzXSB7CiAgICAgICAgIC8vIFdl
IGRvbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIGhlcmUsIHdlIGp1c3Qgd2FudCB0byBsb29wIGFy
b3VuZCBydW5Jbk1vZGUKQEAgLTE4NiwxMyArMTg2LDEzIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBj
b25zCiAgICAgaWYgKHdhaXRNb2RlID09IFdhaXRGb3JNZXNzYWdlICYmIHByZWRpY2F0ZS5pc0Rl
ZmF1bHRNb2RlKCkgJiYgbV9zaGFyZWRUaW1lci0+aXNBY3RpdmUoKSkKICAgICAgICAgdGltZW91
dERlbGF5ID0gc3RkOjptaW4odGltZW91dERlbGF5LCBtX3NoYXJlZFRpbWVyLT5maXJlVGltZURl
bGF5KCkpOwogCi0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCA9IGNvbnRl
eHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGNvbnRleHQtPnNjcmlwdCgp
KSB7CiAgICAgICAgIHNjcmlwdC0+cmVsZWFzZUhlYXBBY2Nlc3MoKTsKICAgICAgICAgc2NyaXB0
LT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVkVGFzayk7CiAgICAgfQogICAgIE1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0OwogICAgIGF1dG8gdGFzayA9IG1fbWVzc2FnZVF1
ZXVlLndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dChyZXN1bHQsIHByZWRpY2F0ZSwg
dGltZW91dERlbGF5KTsKLSAgICBpZiAoV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0g
Y29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byogc2NyaXB0ID0gY29udGV4dC0+c2Ny
aXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5hY3F1aXJlSGVhcEFjY2VzcygpOwogICAgICAgICBz
Y3JpcHQtPnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKHRpbWVyQWRkZWRUYXNrKTsKICAgICB9
CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxv
b3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6cnVuQ2xlYW51cFRhc2tzKFdvcmtl
ckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpydW5DbGVhbnVwVGFz
a3MoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGNv
bnRleHQpOwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhyZWFk
OjpjdXJyZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51bmRlcmx5aW5nVGhyZWFkKCkgPT0g
JlRocmVhZDo6Y3VycmVudCgpKTsKICAgICBBU1NFUlQobV9tZXNzYWdlUXVldWUua2lsbGVkKCkp
OwogCiAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIFdvcmtlclJ1
bkxvb3A6OnBvc3REZWJ1Z2dlclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRh
c2spCiAgICAgcG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIGRlYnVnZ2VyTW9kZSgpKTsK
IH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhXb3JrZXJHbG9iYWxT
Y29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9ybVRhc2soV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAgaWYgKCghY29udGV4dC0+
aXNDbG9zaW5nKCkgJiYgY29udGV4dC0+c2NyaXB0KCkgJiYgIWNvbnRleHQtPnNjcmlwdCgpLT5p
c1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkpIHx8IG1fdGFzay5pc0NsZWFudXBUYXNrKCkpCiAgICAg
ICAgIG1fdGFzay5wZXJmb3JtVGFzaygqY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyUnVuTG9vcC5oCmluZGV4IGE4YzlkZWJkODBkODA5OTU0YTdhOWQ2OTBmNzc0MDZkMjUyODI2
NjguLmVlMjZiMzdmMjk5Y2E2OTljMDRjMGIxYzc0NDE1MDQ4MDg3MTU3ZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCkBAIC0zOCw3ICszOCw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBjbGFzcyBNb2RlUHJlZGljYXRlOwotICAgIGNsYXNzIFdvcmtlckds
b2JhbFNjb3BlOworICAgIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOwogICAgIGNs
YXNzIFdvcmtlclNoYXJlZFRpbWVyOwogCiAgICAgY2xhc3MgV29ya2VyUnVuTG9vcCB7CkBAIC00
NywxMyArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+V29ya2VyUnVuTG9v
cCgpOwogICAgICAgICAKICAgICAgICAgLy8gQmxvY2tpbmcgY2FsbC4gV2FpdHMgZm9yIHRhc2tz
IGFuZCB0aW1lcnMsIGludm9rZXMgdGhlIGNhbGxiYWNrcy4KLSAgICAgICAgdm9pZCBydW4oV29y
a2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW4oV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUqKTsKIAogICAgICAgICBlbnVtIFdhaXRNb2RlIHsgV2FpdEZvck1lc3NhZ2UsIERvbnRX
YWl0Rm9yTWVzc2FnZSB9OwogCiAgICAgICAgIC8vIFdhaXRzIGZvciBhIHNpbmdsZSB0YXNrIGFu
ZCByZXR1cm5zLgotICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3Jr
ZXJHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgPSBXYWl0Rm9yTWVz
c2FnZSk7Ci0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1Z2dlck1vZGUo
V29ya2VyR2xvYmFsU2NvcGUmKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5J
bk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcmIG1vZGUsIFdh
aXRNb2RlID0gV2FpdEZvck1lc3NhZ2UpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0
IHJ1bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJik7CiAKICAgICAg
ICAgdm9pZCB0ZXJtaW5hdGUoKTsKICAgICAgICAgYm9vbCB0ZXJtaW5hdGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXNzYWdlUXVldWUua2lsbGVkKCk7IH0KQEAgLTczLDcgKzczLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBtb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb2RlOyB9CiAKICAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIHZvaWQgcGVy
Zm9ybVRhc2soV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgICAgIHZvaWQgcGVyZm9ybVRh
c2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzayBtX3Rhc2s7CiAgICAgICAgICAgICBTdHJpbmcgbV9tb2RlOwpA
QCAtODMsMTEgKzgzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wU2V0dXA7Ci0gICAgICAgIE1lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwgY29uc3QgTW9kZVByZWRpY2F0
ZSYsIFdhaXRNb2RlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUo
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGljYXRlJiwgV2FpdE1v
ZGUpOwogCiAgICAgICAgIC8vIFJ1bnMgYW55IGNsZWFuIHVwIHRhc2tzIHRoYXQgYXJlIGN1cnJl
bnRseSBpbiB0aGUgcXVldWUgYW5kIHJldHVybnMuCiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG9u
bHkgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgY2xvc2VkIG9yIGxvb3AgaGFzIGJlZW4g
dGVybWluYXRlZC4KLSAgICAgICAgdm9pZCBydW5DbGVhbnVwVGFza3MoV29ya2VyR2xvYmFsU2Nv
cGUqKTsKKyAgICAgICAgdm9pZCBydW5DbGVhbnVwVGFza3MoV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUqKTsKIAogICAgICAgICBib29sIGlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVidWdDb3VudCA+PSAxOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAKaW5k
ZXggM2Q2ZTBiN2FmMDFlMjE4NWUxYzlmZjlkYjA3ZmZkMzBlZGRkMjE3OC4uMzkwOGJkZjNhMjk2
YzgxYjZmNGJhOGU4ZTA4ZTNmYzU4MmVlNWUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dC5jcHAKQEAgLTI4LDI3ICsyOCw3NiBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCi0jaW5jbHVkZSAiV29ya2xldE9wdGlvbnMuaCIKKyNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNp
bmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5nVGFza3MuaCIKKyNpbmNsdWRlIDx3
dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChX
b3JrbGV0KTsKIAotUmVmPFdvcmtsZXQ+IFdvcmtsZXQ6OmNyZWF0ZSgpCitXb3JrbGV0OjpXb3Jr
bGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xldCgpKTsKIH0KIAotV29ya2xldDo6
V29ya2xldCgpCitXb3JrbGV0Ojp+V29ya2xldCgpID0gZGVmYXVsdDsKKworRG9jdW1lbnQqIFdv
cmtsZXQ6OmRvY3VtZW50KCkKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93b3Jr
bGV0cy0xLyNkb20td29ya2xldC1hZGRtb2R1bGUKK3ZvaWQgV29ya2xldDo6YWRkTW9kdWxlKGNv
bnN0IFN0cmluZyYgbW9kdWxlVVJMU3RyaW5nLCBXb3JrbGV0T3B0aW9ucyYmIG9wdGlvbnMsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGlzIGZyYW1lIGlzIGRl
dGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVVJMIG1vZHVsZVVS
TCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChtb2R1bGVVUkxTdHJpbmcpOworICAgIGlmICghbW9k
dWxlVVJMLmlzVmFsaWQoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIk1vZHVsZSBVUkwgaXMgaW52YWxpZCJfcyB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChtX3Byb3hpZXMuaXNFbXB0eSgpKQorICAgICAgICBtX3Byb3hp
ZXMuYXBwZW5kVmVjdG9yKGNyZWF0ZUdsb2JhbFNjb3BlcygpKTsKKworICAgIGF1dG8gcGVuZGlu
Z1Rhc2tzID0gV29ya2xldFBlbmRpbmdUYXNrczo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHByb21p
c2UpLCBtX3Byb3hpZXMuc2l6ZSgpKTsKKyAgICBtX3BlbmRpbmdUYXNrc1NldC5hZGQocGVuZGlu
Z1Rhc2tzLmNvcHlSZWYoKSk7CisKKyAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9wcm94aWVzKSB7
CisgICAgICAgIHByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShbcGVu
ZGluZ1Rhc2tzID0gcGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSwgbW9kdWxlVVJMID0gbW9kdWxlVVJM
Lmlzb2xhdGVkQ29weSgpLCBjcmVkZW50aWFscyA9IG9wdGlvbnMuY3JlZGVudGlhbHMsIHBlbmRp
bmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRvd25jYXN0PFdvcmtsZXRH
bG9iYWxTY29wZT4oY29udGV4dCkuZmV0Y2hBbmRJbnZva2VTY3JpcHQobW9kdWxlVVJMLCBjcmVk
ZW50aWFscywgW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVuZGluZ1Rhc2tzKSwgcGVuZGluZ0Fj
dGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXShPcHRpb25hbDxFeGNlcHRpb24+JiYg
ZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtw
ZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyksIGV4Y2VwdGlvbiA9IGNyb3NzVGhy
ZWFkQ29weShleGNlcHRpb24pLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rp
dml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCisg
ICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3MtPmFib3J0KFdURk1vdmUoKmV4Y2Vw
dGlvbikpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICBwZW5kaW5nVGFza3MtPmRlY3JlbWVudENvdW50ZXIoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2xldDo6ZmluaXNoUGVuZGluZ1Rhc2tzKFdvcmtsZXRQ
ZW5kaW5nVGFza3MmIHRhc2tzKQogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
QVNTRVJUKG1fcGVuZGluZ1Rhc2tzU2V0LmNvbnRhaW5zKCZ0YXNrcykpOworCisgICAgbV9wZW5k
aW5nVGFza3NTZXQucmVtb3ZlKCZ0YXNrcyk7CiB9CiAKLXZvaWQgV29ya2xldDo6YWRkTW9kdWxl
KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCitjb25zdCBjaGFyKiBXb3JrbGV0Ojph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogQWRkIHByb3BlciBp
bXBsZW1lbnRhdGlvbi4KLSAgICBVTlVTRURfUEFSQU0obW9kdWxlVVJMKTsKLSAgICBwcm9taXNl
LnJlc29sdmUoKTsKKyAgICByZXR1cm4gIldvcmtsZXQiOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKaW5kZXggYjJiZWRjNjU4NjViNzRmNWY5
OTU2ZjA0Y2ZjY2MzZjgzNTE5ZjJlMS4uNDE2ODY3NGM3M2IyOTkwOWJhNjI5NjI1NzIxYjM4MDUz
ZTIyN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaApAQCAtMjUsMjcgKzI1LDQ1IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVk
ZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCisjaW5jbHVkZSAiV29ya2xldE9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFdv
cmtsZXRHbG9iYWxTY29wZVByb3h5OworY2xhc3MgV29ya2xldFBlbmRpbmdUYXNrczsKIAotc3Ry
dWN0IFdvcmtsZXRPcHRpb25zOwotCi1jbGFzcyBXb3JrbGV0IDogcHVibGljIFJlZkNvdW50ZWQ8
V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworY2xhc3MgV29ya2xldCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8V29ya2xldD4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoV29ya2xldCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXb3Jr
bGV0PiBjcmVhdGUoKTsKLSAgICB2aXJ0dWFsIH5Xb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIHZp
cnR1YWwgfldvcmtsZXQoKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTW9kdWxlKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTW9kdWxlKGNvbnN0IFN0
cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CisKKyAgICB2b2lkIGZpbmlzaFBlbmRpbmdUYXNrcyhXb3JrbGV0UGVuZGluZ1Rhc2tz
Jik7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPFdv
cmtsZXRHbG9iYWxTY29wZVByb3h5Pj4mIHByb3hpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3hp
ZXM7IH0KIAogcHJvdGVjdGVkOgotICAgIFdvcmtsZXQoKTsKKyAgICBleHBsaWNpdCBXb3JrbGV0
KERvY3VtZW50Jik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBWZWN0b3I8UmVmPFdvcmtsZXRH
bG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgPSAwOworCisgICAgLy8gQWN0
aXZlRE9NT2JqZWN0LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBtX3By
b3hpZXM7CisgICAgSGFzaFNldDxSZWZQdHI8V29ya2xldFBlbmRpbmdUYXNrcz4+IG1fcGVuZGlu
Z1Rhc2tzU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9Xb3JrbGV0LmlkbAppbmRleCAwYjc3NGMyNzRhYWYyMGUwY2M4ODM3NzI3MWM3MTZhMDBmYWY5
ZTYxLi4yOTNjZjA2ZTE1NTZlOWI1NzdhMmE0ZDE5NTg4ZDE2ODA2YWJlZTU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0LmlkbApAQCAtMjQsOCArMjQsMTAgQEAKICovCiAKIFsKKyAgICBB
Y3RpdmVET01PYmplY3QsCiAgICAgRXhwb3NlZD1XaW5kb3csCisgICAgR2xvYmFsPVdvcmtsZXQs
CiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0gaW50ZXJmYWNlIFdvcmtsZXQgewotICAgIFtD
YWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTx1bmRlZmluZWQ+IGFkZE1vZHVsZShVU1ZTdHJpbmcg
bW9kdWxlVVJMLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9ucyBvcHRpb25zKTsKKyAgICBQcm9taXNl
PHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmts
ZXRPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDNiNzU4MmFmZmNkMDRiMTQ2MjkwZjNhNzQ2ODY3MzRh
YzY5MGZlZjIuLmZiOGJhYTVkZWZjOWU4NzUzZjBjNDJlZWNmZjliNjRlZTMyMzQwMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMjcs
OCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpT
V29ya2xldEdsb2JhbFNjb3BlLmgiCkBAIC0zNiw3ICszNCw2IEBACiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtl
ckV2ZW50TG9vcC5oIgotI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+
CkBAIC00NywxMCArNDQsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXRHbG9iYWxTY29wZSk7CiAKK1dvcmtsZXRHbG9i
YWxTY29wZTo6V29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgd2luZG93VVJMKQorICAgIDog
bV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4odGhpcykpCisgICAg
LCBtX3RvcE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3Vy
bCh3aW5kb3dVUkwpCit7CisgICAgYXV0byBhZGRSZXN1bHQgPSBhbGxXb3JrbGV0R2xvYmFsU2Nv
cGVzU2V0KCkuYWRkKHRoaXMpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1
bHQpOworCisgICAgc2V0U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6
OmNyZWF0ZShtX3RvcE9yaWdpbi5jb3B5UmVmKCkpKTsKK30KKwogV29ya2xldEdsb2JhbFNjb3Bl
OjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2
bSwgU2NyaXB0U291cmNlQ29kZSYmIGNvZGUpCiAgICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRy
KGRvY3VtZW50KSkKICAgICAsIG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRy
b2xsZXI+KFdURk1vdmUodm0pLCB0aGlzKSkKICAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVVbmlxdWUoKSkKKyAgICAsIG1fdXJsKGNvZGUudXJsKCkpCiAgICAgLCBtX2Nv
ZGUoV1RGTW92ZShjb2RlKSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9i
YWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CkBAIC02MSw3ICs3MCw3IEBAIFdvcmtsZXRHbG9iYWxT
Y29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPEpTQzo6Vk0+
JiYgdm0sIFNjCiAgICAgQVNTRVJUKGRvY3VtZW50LnBhZ2UoKSk7CiAKICAgICBzZXRTZWN1cml0
eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNv
cHlSZWYoKSkpOwotICAgIHNldENvbnRlbnRTZWN1cml0eVBvbGljeShtYWtlVW5pcXVlPENvbnRl
bnRTZWN1cml0eVBvbGljeT4oVVJMIHsgbV9jb2RlLnVybCgpIH0sICp0aGlzKSk7CisgICAgc2V0
Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihV
UkwgeyB0aGlzLT51cmwoKSB9LCAqdGhpcykpOwogfQogCiBXb3JrbGV0R2xvYmFsU2NvcGU6On5X
b3JrbGV0R2xvYmFsU2NvcGUoKQpAQCAtMTEzLDcgKzEyMiw4IEBAIFN0cmluZyBXb3JrbGV0R2xv
YmFsU2NvcGU6OnVzZXJBZ2VudChjb25zdCBVUkwmIHVybCkgY29uc3QKIAogdm9pZCBXb3JrbGV0
R2xvYmFsU2NvcGU6OmV2YWx1YXRlKCkKIHsKLSAgICBtX3NjcmlwdC0+ZXZhbHVhdGUobV9jb2Rl
KTsKKyAgICBpZiAobV9jb2RlKQorICAgICAgICBtX3NjcmlwdC0+ZXZhbHVhdGUoKm1fY29kZSk7
CiB9CiAKIGJvb2wgV29ya2xldEdsb2JhbFNjb3BlOjppc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkg
Y29uc3QKQEAgLTEzNSw3ICsxNDUsNyBAQCBVUkwgV29ya2xldEdsb2JhbFNjb3BlOjpjb21wbGV0
ZVVSTChjb25zdCBTdHJpbmcmIHVybCwgRm9yY2VVVEY4KSBjb25zdAogewogICAgIGlmICh1cmwu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKLSAgICByZXR1cm4gVVJMKG1fY29kZS51
cmwoKSwgdXJsKTsKKyAgICByZXR1cm4gVVJMKHRoaXMtPnVybCgpLCB1cmwpOwogfQogCiB2b2lk
IFdvcmtsZXRHbG9iYWxTY29wZTo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGlu
dCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCkBAIC0xNzEs
NSArMTgxLDExIEBAIFJlZmVycmVyUG9saWN5IFdvcmtsZXRHbG9iYWxTY29wZTo6cmVmZXJyZXJQ
b2xpY3koKSBjb25zdAogICAgIHJldHVybiBSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcjsKIH0K
IAordm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5kSW52b2tlU2NyaXB0KGNvbnN0IFVS
TCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CisgICAgLy8gRklYTUU6IEFkZCBpbXBsZW1lbnRhdGlvbi4KKyAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmgKaW5kZXggMjVkNTQ5YWM0YTBhYTZmZjc1Mjg3NTVkNzA0N2M4MTRlZTdkYzQwNC4uOTgxNDE1
OWRlMmI1MDNhODA4YzgwODcwNDJmNjczNTM2N2JmZjM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTI2LDMwICsyNiwzMiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2lu
Y2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1J1bnRpbWVGbGFncy5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgor
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50TG9v
cFRhc2tHcm91cDsKIGNsYXNzIFdvcmtlckV2ZW50TG9vcDsKLWNsYXNzIFdvcmtsZXRTY3JpcHRD
b250cm9sbGVyOwogCiBlbnVtIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsK
IHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdv
cmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNj
b3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2Ns
YXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxT
Y29wZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2xldEds
b2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xvYmFsU2NvcGUoKTsK
QEAgLTU3LDExICs1OSwxNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgV29ya2xldEdsb2JhbFNjb3Bl
c1NldCA9IEhhc2hTZXQ8Y29uc3QgV29ya2xldEdsb2JhbFNjb3BlKj47CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFdvcmtsZXRHbG9iYWxTY29wZXNTZXQmIGFsbFdvcmtsZXRHbG9iYWxTY29w
ZXNTZXQoKTsKIAorI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHZpcnR1YWwgYm9v
bCBpc1BhaW50V29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNl
bmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgdmlydHVhbCBib29sIGlzQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiAKICAgICBF
dmVudExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogCi0gICAgY29uc3QgVVJMJiB1
cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvZGUudXJsKCk7IH0KKyAgICBjb25zdCBVUkwm
IHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9CiAKICAgICB2b2lkIGV2YWx1YXRl
KCk7CiAKQEAgLTcwLDcgKzc3LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJl
ZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAotICAgIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSBmaW5hbCB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsg
fQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
OjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWw7CiAKQEAgLTc5LDYgKzg2LDEwIEBAIHB1YmxpYzoK
IAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcigpIGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KIAorICAgIC8vIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLgorICAgIFRocmVh
ZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
KyAgICBib29sIGlzQ2xvc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNDbG9zaW5nOyB9
CisKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KICAgICBib29sIGlzU2VjdXJlQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CiAKQEAgLTg2LDcgKzk3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAorICAgIHZvaWQgZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29u
c3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJik7CisKIHByb3RlY3RlZDoKKyAgICBXb3JrbGV0R2xv
YmFsU2NvcGUoY29uc3QgVVJMJiB3aW5kb3dVUkwpOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShE
b2N1bWVudCYsIFJlZjxKU0M6OlZNPiYmLCBTY3JpcHRTb3VyY2VDb2RlJiYpOwogICAgIFdvcmts
ZXRHbG9iYWxTY29wZShjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUmKSA9IGRlbGV0ZTsKICAgICBX
b3JrbGV0R2xvYmFsU2NvcGUoV29ya2xldEdsb2JhbFNjb3BlJiYpID0gZGVsZXRlOwpAQCAtMTM2
LDggKzE1MCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1fZXZl
bnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVmYXVs
dFRhc2tHcm91cDsKIAorICAgIFVSTCBtX3VybDsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX2pz
UnVudGltZUZsYWdzOwotICAgIFNjcmlwdFNvdXJjZUNvZGUgbV9jb2RlOworICAgIE9wdGlvbmFs
PFNjcmlwdFNvdXJjZUNvZGU+IG1fY29kZTsKKyAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2Ug
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAgLTE0NSw0ICsxNjEsMyBAQCBwcml2
YXRlOgogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGUpCiBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgp
OyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCmluZGV4IGQ3NTlmMGNlMWQxNmY4
NjkxODYwMTI3NzZmMGRiMTZiNjFiYWE0NzguLmI2MzIyNGRkMWVhMThjMDNjMDUzMjNiNzNlYTU4
NWJlMzkyZGNjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmlkbApAQCAtMjYsNyArMjYsNiBAQAogWwogICAgIEN1c3RvbVByb3h5VG9KU09iamVj
dCwKICAgICBFeHBvc2VkPVdvcmtsZXQsCi0gICAgRW5hYmxlZEF0UnVudGltZT1DU1NQYWludGlu
Z0FQSSwKICAgICBDb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJLAogICAgIEpTTGVnYWN5UGFy
ZW50PUpTV29ya2xldEdsb2JhbFNjb3BlQmFzZSwKICAgICBJbXBsaWNpdFRoaXMsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYWM1ZDkxY2M3ZDAyNDIwYjVmYWZmMjE5MWMwZWVmOGZmOWE1ZDdmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHku
aApAQCAtMCwwICsxLDQ2IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBt
ZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50
aWFscy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3M7CisKK2NsYXNz
IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdv
cmtsZXRHbG9iYWxTY29wZVByb3h5PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2xldEds
b2JhbFNjb3BlUHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgcG9zdFRhc2tG
b3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
LCBjb25zdCBTdHJpbmcmIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmZmZTVkNzYxYWY0NmYyNjE0MTE3OTA0YWMxMDRjMzA0OTExNDVkOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRp
bmdUYXNrcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dvcmtsZXRQZW5kaW5nVGFza3M6
OldvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQ
dHIod29ya2xldCkpCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKKyAgICAsIG1f
Y291bnRlcihjb3VudGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cit9CisKK3Zv
aWQgV29ya2xldFBlbmRpbmdUYXNrczo6YWJvcnQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9jb3VudGVyID09IC0xKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2NvdW50ZXIgPSAtMTsKKyAgICBtX3Byb21pc2UucmVq
ZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgaWYgKG1fd29ya2xldCkKKyAgICAgICAgbV93
b3JrbGV0LT5maW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworfQorCit2b2lkIFdvcmtsZXRQZW5k
aW5nVGFza3M6OmRlY3JlbWVudENvdW50ZXIoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisKKyAgICBpZiAobV9jb3VudGVyID09IC0xKQorICAgICAgICByZXR1cm47CisKKyAgICAt
LW1fY291bnRlcjsKKyAgICBpZiAoIW1fY291bnRlcikgeworICAgICAgICBtX3Byb21pc2UucmVz
b2x2ZSgpOworICAgICAgICBpZiAobV93b3JrbGV0KQorICAgICAgICAgICAgbV93b3JrbGV0LT5m
aW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjczM2Q2YmJhYmUwZTliOTNlMjgzYTMyODY3MTVjYTg5ZGMyNmMwOWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tz
LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldDsKKworLy8gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorY2xh
c3MgV29ya2xldFBlbmRpbmdUYXNrcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3Jr
bGV0UGVuZGluZ1Rhc2tzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrbGV0UGVuZGlu
Z1Rhc2tzPiBjcmVhdGUoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXb3JrbGV0UGVuZGluZ1Rhc2tzKHdvcmtsZXQsIFdURk1vdmUocHJvbWlzZSksIGNvdW50
ZXIpKTsKKyAgICB9CisKKyAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbiYmKTsKKyAgICB2b2lkIGRl
Y3JlbWVudENvdW50ZXIoKTsKKworcHJpdmF0ZToKKyAgICBXb3JrbGV0UGVuZGluZ1Rhc2tzKFdv
cmtsZXQmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiwgaW50IGNvdW50ZXIpOworCisgICAg
V2Vha1B0cjxXb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
IG1fcHJvbWlzZTsKKyAgICBpbnQgbV9jb3VudGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IDIwYTZmODU2MTg1OGFkZmJlMmUyYmMxOGViZjcxNTBiOTdhZDE0Zjgu
LjE3ZGY1ZTFmM2NmMDY1NzE0YmNlZjc1ZWQ4NWZjYWQ1MzhmNmU4MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2
LDggKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KKyNpbmNsdWRl
ICJKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCkBA
IC01Niw2ICs1NSwxMSBAQCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENv
bnRyb2xsZXIoUmVmPFZNPiYmIHZtLCBXb3JrbGV0R2xvYmFsU2NvcAogICAgIEpTVk1DbGllbnRE
YXRhOjppbml0Tm9ybWFsV29ybGQobV92bS5nZXQoKSk7CiB9CiAKK1dvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3JrbGV0R2xvYmFsU2NvcGUqIHdvcmts
ZXRHbG9iYWxTY29wZSkKKyAgICA6IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFZNOjpjcmVhdGUo
KSwgd29ya2xldEdsb2JhbFNjb3BlKQoreworfQorCiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
fldvcmtsZXRTY3JpcHRDb250cm9sbGVyKCkKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSgp
KTsKQEAgLTE0NSwxMCArMTQ5LDE5IEBAIHZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6Omlu
aXRTY3JpcHQoKQogICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQogICAgICAgICByZXR1
cm47CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBpZiAoaXM8UGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgewogICAgICAgICBpbml0U2Ny
aXB0V2l0aFN1YmNsYXNzPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUsIFBhaW50V29ya2xldEdsb2JhbFNjb3BlPigpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGlm
IChpczxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7Cisg
ICAgICAgIGluaXRTY3JpcHRXaXRoU3ViY2xhc3M8SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZVBy
b3RvdHlwZSwgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSwgQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU+KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQpAQCAtMTk2LDUgKzIwOSw2MiBAQCB2b2lkIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpzZXRFeGNlcHRpb24oSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlvbikKICAgICB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgZXhjZXB0aW9uKTsKIH0KIAor
dm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVsZWFzZUhlYXBBY2Nlc3MoKQoreworICAg
IG1fdm0tPmhlYXAucmVsZWFzZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjphY3F1aXJlSGVhcEFjY2VzcygpCit7CisgICAgbV92bS0+aGVhcC5hY3F1aXJlQWNj
ZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90
aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sg
Y2FsbGJhY2spCit7CisgICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVy
KiB0aW1lcikgeworICAgICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB0aW1lci0+YWRkVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisK
KyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAg
ICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBw
cm9jZXNzVGltZXIobV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpT
UnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQoreworICAg
IGF1dG8gcHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGltZXIpIHsKKyAgICAg
ICAgaWYgKCF0aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGltZXItPnJlbW92
ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisgICAgcHJvY2Vzc1Rp
bWVyKG1fdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVy
KG1fdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1f
dm0tPmRlZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpCit7CisgICAgaWYgKG1faXNU
ZXJtaW5hdGluZ0V4ZWN1dGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgeworICAgICAgICAv
LyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1cmUgdGhhdCBvbmNl
CisgICAgICAgIC8vIHRlcm1pbmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNUZXJtaW5hdGluZ0V4ZWN1
dGlvbigpIHdpbGwKKyAgICAgICAgLy8gYWNjdXJhdGVseSByZWZsZWN0IHRoYXQgbGV4aWNhbEds
b2JhbE9iamVjdCB3aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgorICAgICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrKTsKKyAgICAgICAg
bV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uID0gdHJ1ZTsKKyAgICB9CisgICAgbV92bS0+bm90aWZ5
TmVlZFRlcm1pbmF0aW9uKCk7Cit9CisKK2Jvb2wgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6Omlz
VGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdAoreworICAgIC8vIFNlZSBjb21tZW50cyBpbiBz
Y2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRleCB1c2FnZS4KKyAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrKTsKKyAgICBy
ZXR1cm4gbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oCmluZGV4IGUzNmQyYTI0MmJmNTQ2NGZhMjdjZjNkYTlhYjUyODRmMDAwNGQ2
ZWUuLjZkNDNjZTVmOWZmZDJhNzBhZjBiZjZlNWFlZTU0Y2Q4ZmFjNzJmMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMjUs
OCArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQotCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAg
LTQ2LDkgKzQ1LDExIEBAIGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50OwogY2xhc3MgV29ya2xl
dEdsb2JhbFNjb3BlOwogY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiAKLWNsYXNzIFdvcmts
ZXRTY3JpcHRDb250cm9sbGVyIHsKKy8vIEZJWE1FOiBXZSBzaG91bGQgc2hhcmUgbW9yZSBjb2Rl
IHdpdGggV29ya2VyU2NyaXB0Q29udHJvbGxlci4KK2NsYXNzIFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgV29ya2xldFNjcmlwdENvbnRyb2xsZXIo
V29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIoUmVmPEpT
Qzo6Vk0+JiYsIFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAgIH5Xb3JrbGV0U2NyaXB0Q29udHJv
bGxlcigpOwogCkBAIC02NCw2ICs2NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlRXZh
bChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBkaXNhYmxlV2ViQXNzZW1i
bHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCisgICAgdm9pZCByZWxlYXNlSGVhcEFj
Y2VzcygpIGZpbmFsOworICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKworICAg
IHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJO
b3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlm
aWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBm
aW5hbDsKKworICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOworICAgIGJv
b2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBldmFs
dWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1l
c3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uLCBTdHJpbmcq
IHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogCkBAIC04Nyw3ICs5Nyw4IEBA
IHByaXZhdGU6CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKiBtX3dvcmtsZXRHbG9iYWxTY29wZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2xldENvbnNvbGVDbGllbnQ+IG1fY29uc29sZUNsaWVu
dDsKICAgICBKU0M6OlN0cm9uZzxKU1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFs
U2NvcGVXcmFwcGVyOworICAgIG11dGFibGUgTG9jayBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9j
azsKKyAgICBib29sIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwCmluZGV4IDZhMTAxYzM5NTkzY2M0YzE1NGM3NDVmNmQ3OTczN2EwMmE5MjNmNmQuLjBiOWFi
MWRjZTM0YTUyMGQ4MmUyZmFkNWY1ZDA2YTg2OWVmNzRkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmNwcApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3AoKTsK
ICAgICB9CiAKLSAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOyB9Cisg
ICAgdm9pZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoeyB9KTsgfQogICAgIHZvaWQg
c3RvcCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOyB9CiAgICAgYm9vbCBpc1BsYXlpbmcoKSB7
IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKTsgfQogICAgIHVuc2lnbmVkIGZyYW1l
c1BlckJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZl
cigpIDsgfQpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAKICAgICBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIgbV9pZDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9k
ZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsK
ICAgICBSZWZQdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4gbV9wcm90ZWN0VGhpc0R1cmluZ0dy
YWNlZnVsU2h1dGRvd247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
aW5kZXggMDY5NDViYWZkNWQxODljN2EwZjljNzI0MDJiYjg4OWRjODA3ZjZmNC4uODIxMzgwMGI5
ZjEwYzU4MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcApAQCAtNDMsMTAgKzQzLDEwIEBAIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29y
ZTo6QXVkaW9CdXM7CiB1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjsKIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
azsKIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCitSZWY8QXVkaW9E
ZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywKICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShjYWxsYmFjaywgaW5w
dXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBzYW1wbGVSYXRlKSk7CiB9CiAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0
cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNp
Z25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQpAQCAtNzcsOCAr
NzcsOSBAQCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkoKQogICAgIH0pOwogfQogCi12b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6c3RhcnQoKQordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KEZ1bmN0
aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQog
eworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGlu
YXRpb25JRCksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOwpAQCAtODks
MTkgKzkwLDMxIEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAogICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rl
c3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworICAgIG1fZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVz
RGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewor
ICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgcmVuZGVyaW5nIG9uIHRoZSBtYWluIHRocmVhZCB3aGVu
IEF1ZGlvV29ya2xldCBpcyBub3QgYWN0aXZlLCB3aGljaCBpcyBsaWtlbHkgbm90IGEgZ29vZCBp
ZGVhLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0
YS5mcmFtZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZl
cnMuc2l6ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShhdWRpb0J1
c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
LCBmYWxzZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0YS5jaGFu
bmVsQnVmZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1v
cnkoaSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEoKSwgYXVk
aW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBh
dWRpb0J1cy5nZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgYXVkaW9CdXNEYXRh
Lm91dHB1dFBvc2l0aW9uKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgYXV0byBk
b1JlbmRlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGF1ZGlvQnVz
ID0gV1RGTW92ZShhdWRpb0J1cyksIGZyYW1lc1RvUHJvY2VzcyA9IGF1ZGlvQnVzRGF0YS5mcmFt
ZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uID0gYXVkaW9CdXNEYXRhLm91dHB1dFBvc2l0aW9u
XSB7CisgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKKyAgICB9OworICAgIGlmIChtX2Rpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFtkb1JlbmRl
ciA9IFdURk1vdmUoZG9SZW5kZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZG9SZW5kZXIoKTsKKyAgICAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb1JlbmRlcigpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHk6OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oCmluZGV4IGFkYTZmZWVmZjM3NDMwZjNjNGRkMzdmMTNjN2UzYTRlNzY2
YTM5ZGEuLjkwN2VjZjVhNzdmNDJiOTQ3ODkwYmRmM2ExN2UxOGVjZmI1YWE1ZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKICAgICB1c2luZyBBdWRpb0lPQ2Fs
bGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5z
aWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgc3Rh
dGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICB+UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5KCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCi0gICAgdm9pZCBzdGFydCgp
IG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+
JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgp
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1Bs
YXlpbmc7IH0KICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zYW1wbGVSYXRlOyB9CkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9mcmFtZXNQZXJCdWZmZXIgeyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIgbV9kZXN0aW5hdGlvbklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9Owor
ICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAppbmRleCAy
ZTg2MWExZTRlMzFlMTQ3ODJhMmI5ZTgzMTk4YzE2N2E1OTQ2MTEzLi5kNWFlZjE1MzRhZDIzNjVk
MjEzN2ExN2I2ZjZkNDRlMWVmODUxOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVn
eSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCi1zdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9E
ZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQsCitSZWY8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVk
aWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5k
ZXggODE3YzRjMjliMTczMmY0NWY5MGUyMTU1ZDY1Y2VlODQ3YzE3YmVlMi4uNmI3YjljZTYwM2E4
NzM5ZTcxZDkwNDc1ZmNjNzg3MjY4ZjZkOWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTM5LDcgKzM5LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKKyAgICBSZWY8V2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sm
LAogICAgICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBmYWY5M2I3M2EyYjAxNDEwMzgwNWE1Y2M2YmNhN2I2
NTNhNjUyN2I3Li5lYmJiM2JlYTZlZGJiNDdiY2I0ZTJkMGIyOTdmY2QwNWViYTYzMjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02OSw3ICs2OSw3IEBAIFBhc3RlYm9hcmRT
dHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3ko
KQogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsK
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNh
bGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGlu
YXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBs
ZVJhdGUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKaW5kZXggZGY0YTFmNzg1MDRkYmUyMzBhOTc3ZTk3ZmQyNTlkMjRlNGY5MjAzMS4u
ZTAzNDIzZDc1M2NiMTk4MGVlM2ViODg5MmZhMjg1MWVlNDk2MjUyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3RlYm9hcmRTdHJhdGVneSog
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogY2xhc3Mg
V2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5h
dGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNh
bGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410182</attachid>
            <date>2020-09-30 17:41:33 -0700</date>
            <delta_ts>2020-09-30 17:51:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930174132.patch</filename>
            <type>text/plain</type>
            <size>162392</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5iZGNmNzc5YmRiZmQwODY5NjYwMzI1MmJmZTcxMjIzYWI3NjQyMzExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODEsMTAgKzgxLDExIEBAIEFzeW5jQ2xpcGJvYXJk
QVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NPQSkiIDogdHJ1ZQogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotQXVkaW9Xb3JrbGV0RW5hYmxlZDoKK0F1ZGlvV29ya2xldEFQSUVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25k
aXRpb246IEVOQUJMRShXRUJfQVVESU8pCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdh
Y3k6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDRkZmNlYmYyNDQ1YTZjNGE1ZTk2MzQ4NWU0NjM1
NTQ2Zjc2Y2Y5MGUuLjE5NDM4MDIzYzQzNThiMDYwNjEwM2M2NWM0N2Q1ODlmN2VlNWMzNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NzQsNiArNDc0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtMTc2Niw2ICsx
NzY3LDcgQEAgc2V0KERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS8KIHNldChTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFBBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Q
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIAogc2V0KFdlYkNv
cmVfSU5URVJGQUNFX0xJQlJBUklFUyBXZWJDb3JlKQogc2V0KFdlYkNvcmVfSU5URVJGQUNFX0lO
Q0xVREVfRElSRUNUT1JJRVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElS
fSkKQEAgLTE5NTEsNyArMTk1Myw4IEBAIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5n
cwogICAgICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSAke1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KLSAgICAgICAgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtQ
QUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCisgICAgICAgIC0tcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7QVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9KQogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVBFTkRFTkNJRVMgV2ViQ29yZUJpbmRpbmdz
KQogCiBpZiAoRU5BQkxFX1dFQklOU1BFQ1RPUlVJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNGZjMDU0NGY5Y2Q5NzYxYWUwMWRjYjY1
MTQ4YzM0YTM4MmJlYWJkOS4uYThkY2Y5Njk4MmE0MDgyOTk3NDU4MjU4MzRiNzE2MGI0NWQyN2Y1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0zMzAsNiArMzMwLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCA0NDIxNjA0NjdkZTE2NWU3NWQ1NDQ5NzUwZmRkYTEzY2Vk
Yzc0NjgwLi4zNjc5NWVhNDEzMzhlZGRhODRhZDI4MzRmNjg4ZGVkMzIwNGRlMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMSw0
ICsxLDUgQEAKICMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgZ2VuZXJhdGUteGNmaWxl
bGlzdHMgc2NyaXB0LgorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
Q1NTUHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaApAQCAtMjA3LDYgKzIwOCw4IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291
cmNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1RyYWNrTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvV29ya2xldE5vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRiMWQ2YWE0NjRhM2EyMDE0ODU5NjFl
ZjcxMTUzNjE1N2UzZjBhYjYuLjJjMWMxMDg5YWQ1YWI2Yjc1OWY1MDZkYzFhZTkwM2NmZjIwNjA2
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDA3LDYgKzQwNyw3IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvVGltZXN0YW1wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIFwKQEAgLTE3NDgsNiArMTc0OSw3IEBAIERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1CiBTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUgPSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorQVVESU9XT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwKIElETF9GSUxFU19UTVAgPSBpZGxfZmlsZXMudG1wCiBJRExfQVRUUklCVVRFU19GSUxF
ID0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgogCkBAIC0x
NzY4LDEzICsxNzcwLDE0IEBAIElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklD
RVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKLSAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKQorICAgICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKQogIwogSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQo
SURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNf
VE1QKSAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNv
U3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93
Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChX
T1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQUExFTUVOVEFMX01BS0VG
SUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTKSBMQU5H
VUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNfVE1QKSAtLWlk
bEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNvU3Vic3BhY2Vz
SGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93Q29uc3RydWN0
b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1k
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJQ0FURURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBz
ICQoU1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCiAJJChERUxFVEUpICQoSURMX0ZJTEVTX1RN
UCkKIAogSlMlLmNwcCBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykgJChJRExf
QVRUUklCVVRFU19GSUxFKSAkKElETF9JTlRFUk1FRElBVEVfRklMRVMpICQoRkVBVFVSRV9BTkRf
UExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCmluZGV4IGJlZDdiNDBkYmMzMmRiMzIyZTc5
YjY4NGRhNTBiMGQ5NzZhZWYwYzYuLjJhMmMxMTc1NjhjNGI0Mzc3YjQ2MTQ1MjYxZTM0Y2ExNWEz
M2M5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
RElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9QXVkaW9Xb3JrbGV0QVBJLAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIFNraXBWVGFi
bGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKaW5kZXggYTk5NGEyNGZhMWYzODFkMjkw
Y2RjOTA2Y2NiMWU4NzEwY2NlYmVmYy4uZmNiOTlhNjc2ZmJhNTI3ZmNjNTE0Y2QxODUyYzI2YzQ1
ZTBiMWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmNwcApAQCAtMzEsMTUgKzMxLDM0IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNp
bmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKIAorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEF1ZGlvV29ya2xldD4gQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoKQorUmVmPEF1ZGlvV29ya2xldD4gQXVkaW9Xb3JrbGV0OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8gd29ya2xldCA9IGFkb3B0UmVmKCpu
ZXcgQXVkaW9Xb3JrbGV0KGRvY3VtZW50KSk7CisgICAgd29ya2xldC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHdvcmtsZXQ7Cit9CisKK0F1ZGlvV29ya2xldDo6QXVkaW9Xb3JrbGV0
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IFdvcmtsZXQoZG9jdW1lbnQpCit7Cit9CisKK1Zl
Y3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBBdWRpb1dvcmtsZXQ6OmNyZWF0ZUds
b2JhbFNjb3BlcygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0KTsK
KyAgICAvLyBXZWJBdWRpbyB1c2VzIGEgc2luZ2xlIGdsb2JhbCBzY29wZS4KKyAgICByZXR1cm4g
eyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlKCp0aGlzKSB9OwogfQogCi1BdWRp
b1dvcmtsZXQ6OkF1ZGlvV29ya2xldCgpCitBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogQXVk
aW9Xb3JrbGV0Ojpwcm94eSgpIGNvbnN0CiB7CisgICAgYXV0byYgcHJveGllcyA9IHRoaXMtPnBy
b3hpZXMoKTsKKyAgICBpZiAocHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBkb3duY2FzdDxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eT4ocHJv
eGllcy5maXJzdCgpLnB0cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKaW5kZXggNTUxMTVl
MzEyYTk2ZGZjOGI1M2RiYzcwYjA5NDA1NmIxMzI5NjZkYi4uODAzZmJiNzRkOWQ2MDNlMzY0ZGQ0
M2Y2OGJmODU0OTE0MTI5ODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldC5oCkBAIC0zMywxMiArMzMsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1dvcmtsZXQgOiBwdWJsaWMgV29ya2xldCB7CitjbGFzcyBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0IGZpbmFsIDogcHVi
bGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0PiBjcmVh
dGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKERvY3VtZW50Jik7CisK
KyAgICBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogcHJveHkoKSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICBBdWRpb1dvcmtsZXQoKTsKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXQoRG9jdW1l
bnQmKTsKKworICAgIC8vIFdvcmtsZXQuCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuaWRsCmluZGV4IGJjNWVhOGYwZDVmN2ZiYjRkMzZlYzg2MjhhOTNiYTE0NGFlZGZhZDcu
LjU2MDNmNzhkZjZhYjMyYTFlY2VjOGY4NmYwMjhjMTkzMDFiMmM0ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKQEAgLTI4LDcgKzI4
LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0
aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldEFQSSwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICBTZWN1
cmVDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZjI2MGUyNmZkMTg4
OGE2ZTRjOTVlNzg5NDU2NmQ5OTdmNjM3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVh
ZC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKTsKKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
KEF1ZGlvV29ya2xldFRocmVhZCYgdGhyZWFkLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKKyAgICA6IFdvcmtsZXRHbG9iYWxTY29wZShwYXJhbWV0ZXJzLndpbmRvd1VSTCkK
KyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
K30KKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6On5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgp
ID0gZGVmYXVsdDsKKworVGhyZWFkKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6dW5kZXJseWlu
Z1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLT50aHJlYWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTViZmE0Y2VjNmFmZGJmMmYzMmNlMzk2YTdkYmQy
MzNhZjkxNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworc3RydWN0
IFdvcmtsZXRQYXJhbWV0ZXJzOworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+IGNyZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3Qg
V29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSh0aHJlYWQsIHBhcmFtZXRlcnMpKTsK
KyAgICB9CisgICAgfkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7CisKKyAgICBUaHJlYWQqIHVu
ZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVy
cyYpOworCisgICAgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVhZD4gbV90aHJlYWQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpCitzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1
cm4gaXM8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxX
ZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmlzQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUoKTsgfQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1N2JjYzBhOWY1
ZTcwNDliNTY4OGU3NWI2NzgzNWVkOGQyYzM2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFeHBvc2VkPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldEFQSSwKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCisgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0LAorICAgIEltcGxpY2l0VGhpcywKKyAgICBJc0ltbXV0YWJsZVByb3Rv
dHlwZUV4b3RpY09iamVjdCwKKyAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdE9u
UHJvdG90eXBlLAorICAgIEdsb2JhbD0oV29ya2xldCxBdWRpb1dvcmtsZXQpLAorXSBpbnRlcmZh
Y2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIC8v
IEltcGxlbWVudCBBUEkuCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzIxNjE0YmJjYTJiYzlhMDVmYjBlOTRiYWYxY2ViYjY4YzkzYWEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCisjaW5jbHVk
ZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICA6IG1fd29ya2xl
dChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fd29ya2xldFRocmVhZChBdWRpb1dvcmts
ZXRUaHJlYWQ6OmNyZWF0ZSh7IHdvcmtsZXQuZG9jdW1lbnQoKS0+dXJsKCkgfSkpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fd29ya2xldFRocmVhZC0+c3RhcnQoKTsK
K30KKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6On5BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpID0gZGVmYXVsdDsKKworYm9vbCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9z
dFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBtX3dvcmtsZXRUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE3YWRmNGYy
ODM4MDNhYjk0NTEwM2Q5ZjMyYTZmODc5MWJhMTQ5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0OworY2xhc3MgQXVkaW9Xb3Jr
bGV0VGhyZWFkOworCitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSA6IHB1YmxpYyBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eT4gY3JlYXRlKEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
KHdvcmtsZXQpKTsKKyAgICB9CisKKyAgICB+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsK
KworICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gdGhlIG1haW4gdGhyZWFkIHRvIHBvc3Qg
dGFzayBiYWNrIHRvIHRoZSB3b3JrbGV0IHRocmVhZC4KKyAgICBib29sIHBvc3RUYXNrRm9yTW9k
ZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29u
c3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmKTsKKworICAgIGJvb2wgaXNBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAg
IFdlYWtQdHI8QXVkaW9Xb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgUmVmPEF1ZGlvV29ya2xldFRo
cmVhZD4gbV93b3JrbGV0VGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5KQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9iYWxT
Y29wZVByb3h5JiBwcm94eSkgeyByZXR1cm4gcHJveHkuaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNTYyNzE0ODY2M2YwNDIxOGIxZTU1MDUxNzViMDQ5
NWE1NDY5MTIwNi4uNmIwYzFhMDZlNjAxNWEzZDdiMmNiNmZmYWM3NDkyYmY3OTQ0ZDVjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8s
Ci0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1BdWRpb1dvcmtsZXRBUEksCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRv
SlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAppbmRleCBh
OWUxOWI2OTVlMDZmMjMxMzg4ZTczNWIyYjYwNTI5NzlmMTFmOTA1Li4zMzljNzZmNGIxOGMwOWYy
NTQyYzdhOTYxZTgxNjBhN2I0Mjg5ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbApAQCAtMjgs
NyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRC
eVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0
QVBJLAogXSBkaWN0aW9uYXJ5IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zIDogQXVkaW9Ob2RlT3B0
aW9ucyB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0cyA9IDE7CiAgICAgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5Nzdm
Mzk5NDRmMmJlY2I3NjhjODk1NmNhZjVlZWEyYWQ4OGEwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKQEAg
LTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmgiCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGFyYW1ldGVycyBXb3Jr
bGV0UGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV29ya2xl
dFBhcmFtZXRlcnMgeworICAgICAgICB3aW5kb3dVUkwuaXNvbGF0ZWRDb3B5KCkKKyAgICB9Owor
fQorCitBdWRpb1dvcmtsZXRUaHJlYWQ6OkF1ZGlvV29ya2xldFRocmVhZChjb25zdCBXb3JrbGV0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzLmlz
b2xhdGVkQ29weSgpKQoreworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6c3RhcnQoKQor
eworICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrKTsKKworICAgIFJlZjxUaHJlYWQ+IHRocmVhZCA9IFRocmVhZDo6Y3JlYXRl
KCJXZWJDb3JlOiBBdWRpb1dvcmtsZXQiLCBbdGhpc10geworICAgICAgICB3b3JrbGV0VGhyZWFk
KCk7CisgICAgfSwgVGhyZWFkVHlwZTo6QXVkaW8pOworICAgIC8vIEZvcmNlIHRoZSBUaHJlYWQg
b2JqZWN0IHRvIGJlIGluaXRpYWxpemVkIGZ1bGx5IGJlZm9yZSBzdG9yaW5nIGl0IHRvIG1fdGhy
ZWFkIChhbmQgYmVjb21pbmcgdmlzaWJsZSB0byBvdGhlciB0aHJlYWRzKS4KKyAgICBXVEY6OnN0
b3JlU3RvcmVGZW5jZSgpOworICAgIG1fdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpOworfQorCit2
b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6d29ya2xldFRocmVhZCgpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyNpZiBVU0UoR0xJQikKKyAgICBHUmVmUHRy
PEdNYWluQ29udGV4dD4gbWFpbkNvbnRleHQgPSBhZG9wdEdSZWYoZ19tYWluX2NvbnRleHRfbmV3
KCkpOworICAgIGdfbWFpbl9jb250ZXh0X3B1c2hfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlcjsKKyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3Jl
YXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrKTsKKyAgICAgICAgbV93b3JrbGV0R2xvYmFs
U2NvcGUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3JlYXRlKCp0aGlzLCBtX3BhcmFtZXRl
cnMpOworCisgICAgICAgIHNjcmlwdENvbnRyb2xsZXIgPSBtX3dvcmtsZXRHbG9iYWxTY29wZS0+
c2NyaXB0KCk7CisKKyAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVkKCkpIHsKKyAgICAg
ICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRoZSB0aHJlYWQgaGFk
IGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4aXN0IHlldCwKKyAg
ICAgICAgICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpIGNvdWxkbid0IGJlIGNhbGxlZCBmcm9tIHN0
b3AoKS4KKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNjaGVkdWxlRXhlY3V0aW9uVGVy
bWluYXRpb24oKTsKKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmZvcmJpZEV4ZWN1dGlv
bigpOworICAgICAgICB9CisgICAgfQorCisgICAgcnVuRXZlbnRMb29wKCk7CisKKyNpZiBVU0Uo
R0xJQikKKyAgICBnX21haW5fY29udGV4dF9wb3BfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBSZWZQdHI8VGhyZWFkPiBwcm90ZWN0b3IgPSBtX3RocmVh
ZDsKKworICAgIEFTU0VSVChtX3dvcmtsZXRHbG9iYWxTY29wZS0+aGFzT25lUmVmKCkpOworCisg
ICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiB3b3JrbGV0R2xvYmFsU2NvcGVUb0Rl
bGV0ZTsKKyAgICB7CisgICAgICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRv
IGVuc3VyZSB0aGF0IHdlIGRvbid0IGNoYW5nZSBtX3dvcmtlckdsb2JhbFNjb3BlCisgICAgICAg
IC8vIHdoaWxlIFdvcmtlclRocmVhZDo6c3RvcCBpcyBhY2Nlc3NpbmcgaXQuCisgICAgICAgIGF1
dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVM
b2NrKTsKKworICAgICAgICAvLyBEZWxheSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFdvcmtlckds
b2JhbFNjb3BlIGNvbnRleHQgdW50aWwgYWZ0ZXIgd2UndmUgdW5sb2NrZWQgdGhlCisgICAgICAg
IC8vIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrZXJHbG9iYWxTY29wZU11dGV4LiBUaGlzIGlzIG5l
ZWRlZCBiZWNhdXNlIGRlc3RydWN0aW5nIHRoZQorICAgICAgICAvLyBjb250ZXh0IHdpbGwgdHJp
Z2dlciB0aGUgbWFpbiB0aHJlYWQgdG8gcmFjZSBhZ2FpbnN0IHVzIHRvIGRlbGV0ZSB0aGUgV29y
a2VyVGhyZWFkCisgICAgICAgIC8vIG9iamVjdCwgYW5kIHRoZSBXb3JrZXJUaHJlYWQgb2JqZWN0
IG93bnMgdGhlIG11dGV4IHdlIG5lZWQgdG8gdW5sb2NrIGFmdGVyIHRoaXMuCisgICAgICAgIHdv
cmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlID0gV1RGTW92ZShtX3dvcmtsZXRHbG9iYWxTY29wZSk7
CisgICAgfQorCisgICAgLy8gVGhlIGJlbG93IGFzc2lnbm1lbnQgd2lsbCBkZXN0cm95IHRoZSBj
b250ZXh0LCB3aGljaCB3aWxsIGluIHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KKyAgICAv
LyBXZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVj
YXVzZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhl
bS4KKyAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IG51bGxwdHI7CisKKyAgICAvLyBT
ZW5kIHRoZSBsYXN0IFdvcmtlclRocmVhZCBSZWYgdG8gYmUgRGVyZWYnZWQgb24gdGhlIG1haW4g
dGhyZWFkLgorICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpXSB7IH0pOworCisgICAgLy8gVGhlIHRocmVhZCBvYmplY3QgbWF5IGJlIGFs
cmVhZHkgZGVzdHJveWVkIGZyb20gbm90aWZpY2F0aW9uIG5vdywgZG9uJ3QgdHJ5IHRvIGFjY2Vz
cyAidGhpcyIuCisgICAgcHJvdGVjdG9yLT5kZXRhY2goKTsKK30KKwordm9pZCBBdWRpb1dvcmts
ZXRUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCit7CisgICAgLy8gRG9lcyBub3QgcmV0dXJuIHVudGls
IHRlcm1pbmF0ZWQuCisgICAgbV9ydW5Mb29wLnJ1bihtX3dvcmtsZXRHbG9iYWxTY29wZS5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRUaHJlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTI3MDJjOThmZGY4M2Y5NzUyOTQ0YTQ1MGM5MzRh
Yzg1Mzc5NDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTsKKworc3RydWN0IFdv
cmtsZXRQYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBVUkwgd2luZG93VVJMOworCisgICAgV29y
a2xldFBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCitjbGFzcyBBdWRpb1dv
cmtsZXRUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Xb3JrbGV0VGhy
ZWFkPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IGNyZWF0
ZShjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldFRocmVhZChwYXJhbWV0ZXJzKSk7CisgICAg
fQorCisgICAgdm9pZCBzdGFydCgpOworCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCgpIHsg
cmV0dXJuIG1fcnVuTG9vcDsgfQorICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
bV90aHJlYWQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRU
aHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKKworICAgIHZvaWQgcnVuRXZlbnRMb29w
KCk7CisgICAgdm9pZCB3b3JrbGV0VGhyZWFkKCk7CisKKyAgICBSZWZQdHI8VGhyZWFkPiBtX3Ro
cmVhZDsKKyAgICBXb3JrZXJSdW5Mb29wIG1fcnVuTG9vcDsKKyAgICBXb3JrbGV0UGFyYW1ldGVy
cyBtX3BhcmFtZXRlcnM7CisgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiBtX3dv
cmtsZXRHbG9iYWxTY29wZTsKKyAgICBMb2NrIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDAyYjVmYTA0ZmVkZDkzZWU5YzNhMmQ5NTMw
MzA3ZDIxMDk0NGYzZTYuLmNkYzAzY2ZhYzRkODc3YTcwZWM1M2VhYjhiYTkzY2MzNzU2MDg3ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zCiAg
ICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcih1
bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRpb1dvcmts
ZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKGRvY3Vt
ZW50KSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUo
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKIHsK
ICAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRl
ciBwYWdlIG5hdmlnYXRlLgpAQCAtMTYxLDcgKzE2MSw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJh
c2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5u
ZWxzCiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRp
Zmllcih1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRp
b1dvcmtsZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRl
KGRvY3VtZW50KSkKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRp
YVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKSwgKnRoaXMpKQogICAgICwgbV9yZW5kZXJUYXJnZXQo
V1RGTW92ZShyZW5kZXJUYXJnZXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKaW5kZXggZGY5MzVhNDA4ZjRjYjA0M2E3ZDg5
N2RiNjM3M2I0MTQ3N2Q4ZDc0OC4uYmNkNjgzMDAxOWM2ODYxOTcxMWY3MWZhYWUxZDg1YTZiOTg0
ZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaWRsCkBAIC00Miw3ICs0Miw3IEBACiAgICAgLy8gQWxsIHBhbm5pbmcgaXMg
cmVsYXRpdmUgdG8gdGhpcyBsaXN0ZW5lci4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9M
aXN0ZW5lciBsaXN0ZW5lcjsKIAotICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFi
bGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xl
dCBhdWRpb1dvcmtsZXQ7CisgICAgW1NhbWVPYmplY3QsIFNlY3VyZUNvbnRleHQsIEVuYWJsZWRB
dFJ1bnRpbWU9QXVkaW9Xb3JrbGV0QVBJXSByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Xb3JrbGV0
IGF1ZGlvV29ya2xldDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0NvbnRleHRTdGF0
ZSBzdGF0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhdGVjaGFuZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNzUxZGU5MThjZTFkYzM2YTFjNzllOTUwM2M5
MjhmNGY4OWYwOTZiYy4uYWUzNGZmYmEyM2NkYTE2Y2Q5YWE3NDYwZTdhODcyZTc5ODIxM2U4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsMTAgKzMwLDEzIEBACiAKICNp
bmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC05
OSwxOCArMTAyLDMwIEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJ
bnB1dChjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCiAgICAgICAgICAgICAvLyBSZS1jcmVh
dGUgZGVzdGluYXRpb24uCiAgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAg
ICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwotICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKKyAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5k
ZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAorRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpCit7CisgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94
eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAgICAgIHJldHVybiBb
d29ya2xldFByb3h5ID0gbWFrZVJlZigqd29ya2xldFByb3h5KV0oRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKSB7CisgICAgICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRv
V29ya2xldEdsb2JhbFNjb3BlKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKTsK
KyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9
OworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKIHsKICAgICBBU1NFUlQoaXNJ
bml0aWFsaXplZCgpKTsKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydCgpOworICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRG
dW5jdGlvbigpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTgsNyArMTMzLDcgQEAgdm9p
ZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmIChpc0lu
aXRpYWxpemVkKCkpCi0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAg
ICBjb250ZXh0KCkucG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwogfQogCkBAIC0xNjMsNyAr
MTc4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbEMKICAgICAgICAgLy8gUmUtY3JlYXRlIGRl
c3RpbmF0aW9uLgogICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAgICAgIGNyZWF0
ZURlc3RpbmF0aW9uKCk7Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAg
IG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsK
ICAgICB9CiAKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXgg
ZWRlMTUzM2MxNjQ4MjljZjFlMjNiYTkzYzI5YTg4NjM0MjAzZTRkMi4uN2Q2NWUyNWViNTU0MWE5
Nzc2ZDUwMDZlMTcyZDIwMDViNDNkZThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4pOwogICAgIHZvaWQg
Y3JlYXRlRGVzdGluYXRpb24oKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4gZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCk7CisKICAgICB2b2lkIGluaXRp
YWxpemUoKSBmaW5hbDsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7CkBAIC02MSw3ICs2
Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50KCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFN0cmluZyBtX2lucHV0RGV2aWNlSWQ7CiAgICAgdW5z
aWduZWQgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiAgICAgZmxvYXQgbV9zYW1wbGVS
YXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGZhYTMzNjUyZWRi
Mzc2M2IzOWMxZjZiYjQ3ZjZiYjI0ZmEwM2M0MjAuLjUzYjU1NDEzZTkyNjFiNzcwZWY3YWMzYmFh
ZDZkODZlMGM4MjllY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMxLDcg
KzMxLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQu
aCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5o
IgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiSFJU
RkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05Niw5ICs5OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIG1fc3RhcnRl
ZFJlbmRlcmluZyA9IHRydWU7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CiAKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRpYWxpemUgaGVyZT8K
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhy
ZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5kZXJUaHJlYWQgPSBU
aHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIG9mZlRocmVhZFJl
bmRlcmluZyA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBvZmZsaW5lUmVuZGVyKCk7CiAgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lID0g
bV9jdXJyZW50U2FtcGxlRnJhbWUsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXSB7CiAgICAgICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSBmYWxzZTsKQEAgLTExNCw3
ICsxMTUsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpzdGFydFJlbmRlcmluZygpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwotICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICB9OworCisgICAg
aWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgp
KSB7CisgICAgICAgIHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFs
U2NvcGUoW29mZlRocmVhZFJlbmRlcmluZyA9IFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKV0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgb2ZmVGhyZWFk
UmVuZGVyaW5nKCk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgbGltaXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBh
dWRpby4KKyAgICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRl
cmVyIiwgV1RGTW92ZShvZmZUaHJlYWRSZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NWNjMTA4NTVkOGJhZmVkN2E0
NTNjNGJlOWY0ZDkyZGUyNDUzN2JiLi5jN2VjZmRkMTU1YzUyODBkNTg1NGJmYjUyYmViZWEwMjg0
YWRiN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA1LDcgKzIwNSwxMCBAQCBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9u
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcAogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJu
ZWwuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC0yNTc5LDYg
KzI1ODIsNyBAQCB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKIHdvcmtsZXRz
L1dvcmtsZXQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKIHdvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
CiB3b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCiB4bWwvRE9NUGFyc2VyLmNwcApAQCAtMjY4MCw2ICsyNjg0LDcgQEAgSlNB
dWRpb1RpbWVzdGFtcC5jcHAKIEpTQXVkaW9UcmFjay5jcHAKIEpTQXVkaW9UcmFja0xpc3QuY3Bw
CiBKU0F1ZGlvV29ya2xldC5jcHAKK0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiBKU0F1
ZGlvV29ya2xldE5vZGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmNwcAogSlNBdXRo
ZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1MmRiM2MyMTBjZWFj
ZTUyOTkxODY4ZWNiMGNiNzM2MzVjZmVkMC4uYjBjMjk3MGY1YWNkZjllMjMzMGViZjhkN2E5NDAx
MmQ1ZTYwMzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjQ1MSw2ICsyNDUxLDEwIEBACiAJCTgzM0I5RTMyMUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkYxRjUwOEQ4MDAwRTBFNDI4IC8q
IEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM0MUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkExRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5
c3RlbUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJDMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnku
aCAqLzsgfTsKKwkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFz
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JE
ODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi87IH07CisJCTgz
M0JEODE4MjUyNEQ0RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi87IH07CisJCTgzM0JEODFE
MjUyNEQ1MzAwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTkyNTI0RDUxQjAwNkU3
MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzM0JEODFFMjUyNEQ1
MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIz
IC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggKi87IH07CiAJCTgzM0QxQzc2MjREOEQ1
NEYwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0QxQzczMjREOEQ1MzMwMEU4MTNE
RiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLzsgfTsKIAkJODM0MDdGQzExRThE
OUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM0M0Q5ODQyNEQwREVFOTAwOUFCRDQ5IC8qIFdlYktpdE9z
Y2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQzRDk4MTI0RDBERUE5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCAq
LzsgfTsKQEAgLTI1MDgsNiArMjUxMiw3IEBACiAJCTgzOEY4NkRCMUY1MDlFN0IwMEU4Q0ZDNSAv
KiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAwRThDRkM1IC8qIEZpbGVTeXN0ZW1F
bnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1MEI2M0UwMEU5RDg2QiAvKiBET01G
aWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oICovOyB9OwogCQk4
Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4
NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07CisJCTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyog
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovOyB9OwogCQk4MzlBMkYyRTFFMjA0
QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJH
TFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUIxQTBD
MEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJCTgzOUJFNkQ1MjRGNTg3
NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCAq
LzsgfTsKQEAgLTI1MzUsNiArMjU0MCw3IEBACiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAv
KiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyog
SlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRw
UmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAv
KiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgfTsK
KwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFF
NDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgfTsK
IAkJODNEQjlFMEYyNERBMTk0OTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBDMjREQTE4QjUw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi87IH07CiAJCTgzREI5RTEwMjREQTE5NTcw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwRTI0REExOEI2MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oICovOyB9OwogCQk4M0UzNTlBMjFCQjEwMzFEMDAyQ0VCOTggLyogSlNI
VE1MVGltZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oICov
OyB9OwpAQCAtMjU0NCw2ICsyNTUwLDcgQEAKIAkJODNGQjMzNzExRjUwOEE1NDAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkQxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3MzFGNTA4QTU4MDA5ODZFNTQgLyogRmls
ZVN5c3RlbUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4M0ZCMzM2RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggKi87IH07
CiAJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2QzFGNTA4
QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4M0ZDOTk0QjI1
MjU1N0VBMDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyog
QXVkaW9Xb3JrbGV0VGhyZWFkLmggKi87IH07CiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07CkBAIC0xMDU3OCw2
ICsxMDU4NSwxMyBAQAogCQk4MzNCOUUyRDFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVt
RmlsZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmls
ZVN5c3RlbUZpbGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5
RTJFMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE1MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3Jr
bGV0UGVuZGluZ1Rhc2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzM0JEODFBMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFCMjUyNEQ1
MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcyQjMgLyogQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFCQ0MgLyogSlNQZXJmb3JtYW5jZU9ic2Vy
dmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVy
Zm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzM0QxQzczMjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0QxQzc1MjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNCw2ICsxMDcxOCw3IEBA
CiAJCTgzOTk0NzA5MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRDFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01G
aWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
RmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTk0NzBFMUY1
MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJG
MkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3Rh
dGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVU
cmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQw
MDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDc1Miw2ICsxMDc2Nyw3IEBACiAJCTgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRDUxMUYzMjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVzaFB1bGxGSUZPLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1
c2hQdWxsRklGTy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoUHVsbEZJ
Rk8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzREI5RTBBMjREQTE4QjQwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJU
eXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0RCOUUwRDI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDc5MSw2ICsxMDgwNyw5IEBACiAJCTgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAv
KiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzRkIzMzZFMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1FbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
U3lzdGVtRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNGQzk5NDcyNTI1
NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5
OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
RkM5OTRBMjUyNTU3RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TW9kaWZpZXJJbml0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBV
SUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUV2ZW50SW5p
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNTFEQTlGMTY2MDAzNzIz
N0MgLyogVUlFdmVudEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVJRXZlbnRJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTYxLDggQEAK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4
QjAwOEI1QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDgg
LyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFG
MjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAq
LywKQEAgLTE3NTU0LDggKzE3NTc1LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUg
LyogSW5saW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxp
bmVMaW5lQm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5l
TGluZUJveC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250
ZW50QnJlYWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGlu
ZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElu
bGluZUxpbmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyog
SW5saW5lTGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyog
SW5saW5lTGluZUdlb21ldHJ5LmggKi8sCkBAIC0xODcyMCw2ICsxODczOSw4IEBACiAJCQkJMkU0
MzQ2M0QwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJ
CQkyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywK
IAkJCQkyRTQzNDYzRjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywK
KwkJCQk4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCAqLywKKwkJCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oICovLAogCQkJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBX
b3JrZXJSZXBvcnRpbmdQcm94eS5oICovLAogCQkJCTJFNDM0NjQwMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJSdW5Mb29wLmNwcCAqLywKIAkJCQkyRTQzNDY0MTBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyUnVuTG9vcC5oICovLApAQCAtMTk3MzgsOCArMTk3NTksMTEgQEAKIAkJCQk0QkRFQTMy
NjIxN0ZFMkZBMDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKIAkJCQk0QkRF
QTMyNDIxN0ZFMkU0MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNEJE
RUEzMkEyMTgwMTA3MjAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8sCisJCQkJ
ODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8s
CiAJCQkJODNBQ0QwMTAyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmggKi8sCiAJ
CQkJODNBQ0QwMTIyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmlkbCAqLywKKwkJ
CQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgKi8s
CisJCQkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAq
LywKIAkJCQk0QkRFQTMyOTIxODAwNDBDMDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwICovLAogCQkJCTRCREVBMzI3MjE4MDAzRjcwMDUyREZDRCAvKiBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oICovLAogCQkJKTsKQEAgLTI5ODU4LDExICsyOTg4MiwxOCBAQAogCQkJCTgz
Qjk4NzA2MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuY3BwICovLAogCQkJCTgzQjk4
NzAxMjUyMjVGMEMwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCAqLywKIAkJCQk4M0I5ODZGRDI1
MjI1RjBCMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmlkbCAqLywKKwkJCQk4MzNCRDgxQTI1MjRE
NTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovLAorCQkJCTgzM0JE
ODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovLAorCQkJ
CTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwg
Ki8sCisJCQkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLywKKwkJCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQk4M0I5ODcwMzI1MjI1RjBDMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5jcHAgKi8sCiAJCQkJODNCOTg3MDcyNTIyNUYwRTAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGUuaCAqLywKIAkJCQk4M0I5ODcwNDI1MjI1RjBEMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwgKi8sCiAJCQkJODNCOTg3MDAyNTIyNUYwQjAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmggKi8sCiAJCQkJODNCOTg3MDUyNTIyNUYwRDAwQTkz
OUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCAqLywKKwkJCQk4M0ZDOTk0QTI1MjU1
N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLywKKwkJCQk4M0ZDOTk0OTI1
MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8sCiAJCQkJODMxOThGQkIy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJF
MjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzA0NjcsOCAr
MzA0OTgsMTEgQEAKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYgLyogQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOEIxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQjI1
MjI1RjdEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNC
RDgxRDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MDkyNTIyNUY3MjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4NzBBMjUyMjVG
NzYwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0
NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzE3NzIsNiArMzE4MDYsNyBAQAogCQkJCUNEMDYzRjgzMUUyM0ZBODkwMDgxMkJF
MyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFNTBBMTU1
QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA1OTI2NDFF
MjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCNTdDQjUyRTE4MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVu
dEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0IC8qIElu
bGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlB
QiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc4MCw3
ICszMTgxNSw2IEBACiAJCQkJQkNFNzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8qIElubGluZUl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8q
IElubGluZUxpbmVCb3guaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVC
NDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RjkxNDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU5NSw2ICszNDYyOSw4IEBACiAJCQkJMUFCQzcxMDkx
NzBFNUUxQjAwRjlBOUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhC
NEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2Vy
UmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0
NERFMDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0
NjA5LDcgKzM0NjQ1LDkgQEAKIAkJCQk0QkRFQTMyMDIxN0VDNTVGMDA1MkRGQ0QgLyogV29ya2xl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEI3RjlDNTIyMTgzQjVFNTAwMUNFQkEwIC8qIFdvcmts
ZXRDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyNTIxN0ZFMkU0MDA1
MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgx
ODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQUNEMDEzMjUyMjlFMTAwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5k
aW5nVGFza3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREVBMzI4MjE4MDAzRjcwMDUyREZDRCAv
KiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjQw
OTlFNjQ5MjAwNTZFNTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFt
QnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYyYjBkNmQ1NGE0ZjAwMDJkZWU0YmQyZGZj
N2VjNmVkMTM3ZDg0NjguLmIzYThkNWIxM2M0NTExY2Y3ODQyNTc1OWQ2MDUxNDgxMTE0OTBjMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEF1ZGlv
TGlzdGVuZXIpIFwKICAgICBtYWNybyhBdWRpb1BhcmFtTWFwKSBcCiAgICAgbWFjcm8oQXVkaW9X
b3JrbGV0KSBcCisgICAgbWFjcm8oQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAgICBtYWNy
byhBdWRpb1dvcmtsZXROb2RlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5j
cHAKaW5kZXggMzhkZjY3NzUyZTkwYTZhMmUwMTc0Y2ZhZmJjNGY4NzFlYTgxYzE0YS4uZGE0NmU4
NWMzNDAzYTJlODA3NjM4MjM4MjVkYjg3NDE5ZDc4MWRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkRPTUdDT3V0cHV0Q29uc3RyYWludC5oIgogI2luY2x1ZGUgIkRPTUlz
b1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rv
ckJhc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNjgsOSArNjksMTIgQEAgSlNW
TUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KCkpCiAjZW5kaWYKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKICNp
ZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU+KCkpCi0gICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEds
b2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2Nv
cGU+KCkpCisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKKyAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6Y3JlYXRlPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxp
emF0aW9uR2xvYmFsT2JqZWN0KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNJREJTZXJp
YWxpemF0aW9uR2xvYmFsT2JqZWN0PigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgzYjgyMzRjMzM1ZGVkMTQ1MGQxODEzZmU4
NDI5N2E5NzU4Mzg5NTEuLmI4NDQwZTg3NzBlNDcyOTFmN2VlMjA2MzE5OWVhMDVjM2M0YmIwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKQEAgLTk5LDkgKzk5LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZv
ckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRy
PEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3Bl
OwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6
OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxU
eXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGQwYTU0N2Fj
NTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2MDkuLmUzOTAxODBmNTcxZjllMWUzNWJjOTIz
YjFkNzcxZDRiOTVjZWRhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpA
QCAtNDQsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29u
c29sZUNsaWVudDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCi1jbGFzcyBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyIHsKK2NsYXNzIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKQEAgLTY3
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpL2lzRXhlY3V0aW9u
Rm9yYmlkZGVuKCkgdG8gZ3VhcmQgYWdhaW5zdCByZWVudHJ5IGludG8gSlMuCiAgICAgLy8gQ2Fu
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCiAgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCk7Ci0gICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBD
YWxsZWQgb24gV29ya2VyIHRocmVhZCB3aGVuIEpTIGV4aXRzIHdpdGggdGVybWluYXRpb24gZXhj
ZXB0aW9uIGNhdXNlZCBieSBmb3JiaWRFeGVjdXRpb24oKSByZXF1ZXN0LAogICAgIC8vIG9yIGJ5
IFdvcmtlciB0aHJlYWQgdGVybWluYXRpb24gY29kZSB0byBwcmV2ZW50IGZ1dHVyZSBlbnRyeSBp
bnRvIEpTLgpAQCAtNzksMTEgKzgwLDExIEBAIHB1YmxpYzoKIAogICAgIEpTQzo6Vk0mIHZtKCkg
eyByZXR1cm4gKm1fdm07IH0KICAgICAKLSAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCk7Ci0g
ICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpOworICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3Mo
KSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CiAKLSAgICB2b2lk
IGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZp
Y2F0aW9uQ2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgdm9pZCBh
ZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOwog
CiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CiAgICAgdm9pZCBkZXRh
Y2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDEwZjNlNjY4NjY1NDVhNWE2MGE5
ZWU1YTlmODY3NGFlM2MyODQ5MzIuLjU4ZmQxYTdhMjZmZGQxZGFjNGRiMmI3MGIxYzU0NTM3NWJj
ZDRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC03NzUsNyArNzc1LDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVj
dFByb3RvdHlwZQogCiAgICAgIyBGb3Igd29ya2VycywgdGhlIGdsb2JhbCBvYmplY3QgaXMgYSBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50
eXBlLT5uYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSI7Ci0gICAgIyBGb3Igd29ya2xldHMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgIyBGb3Ig
d29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUg
b3IgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJXb3JrbGV0R2xvYmFsU2NvcGUiOwogCiAgICAgcmV0dXJuIElzRE9N
R2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCBiZWUwZmM1MDY5MTlmY2NmZDE3NWY2
OWNjNTIzYzU3NTZiYzA4YTg4Li5mNGM4NGJjODhjNDExNDVkZDE2ZWQzODNkNGQzOWM0MmNjNWQ2
OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbApAQCAtNDcsNiArNDcsNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CitteSAkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOwogbXkgJGlkbEF0dHJpYnV0
ZXNGaWxlOwpAQCAtNjksNiArNzAsNyBAQCBHZXRPcHRpb25zKCdkZWZpbmVzPXMnID0+IFwkZGVm
aW5lcywKICAgICAgICAgICAgJ3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGU9cycgPT4gXCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAg
ICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdwYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+
IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3N1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcywKICAgICAg
ICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmlidXRlc0ZpbGUsCkBAIC04
Myw2ICs4NSw3IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGCiBkaWUoJ011c3Qgc3BlY2lmeSBh
biBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicp
IHVubGVzcyBkZWZpbmVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1hdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRw
dXQgZmlsZSB1c2luZyAtLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNz
IGRlZmluZWQoJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpIHx8ICFkZWZpbmVkKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogZGllKCdNdXN0IHNwZWNpZnkgdGhlIGZpbGUgbGlzdGlu
ZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykgdW5sZXNzIGRlZmluZWQoJGlk
bEZpbGVOYW1lc0xpc3QpOwogZGllKCdNdXN0IHNwZWNpZnkgSURMIGF0dHJpYnV0ZXMgZmlsZSB1
c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRpZGxBdHRyaWJ1dGVz
RmlsZSk7CkBAIC05NSw2ICs5OCw3IEBAICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlCiAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOworJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYgZGVmaW5lZCgkc3VwcGxlbWVudGFsTWFrZWZp
bGVEZXBzKTsKIAogbXkgQGlkbEZpbGVOYW1lczsKQEAgLTEzNSw2ICsxMzksNyBAQCBteSAkZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0g
IiI7CiAKIG15ICRpc29TdWJzcGFjZXNIZWFkZXJDb2RlID0gPDxFTkQ7CkBAIC0yMzcsNiArMjQy
LDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNo
KSB7CiAgICAgICAgICAgICAgICAgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
Lj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBl
cSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAgICAgICRwYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiQXVkaW9Xb3JrbGV0IikgeworICAgICAgICAgICAgICAg
ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNv
ZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENv
bnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjU0LDYg
KzI2MSw3IEBAIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldvcmtsZXRHbG9iYWxTY29wZSIsICR3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIiwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRl
c3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZGFlMTEwN2QzMzRiYzhmNDNkZjJmNGY3
ZTg0YTk4M2MzNWQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0wLDAgKzEsMiBAQAorcGFydGlhbCBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFi
ZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBA
IC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBi
dWlsZCBzY3JpcHRzIHRoYXQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5o
IGFuZAorICAgIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUg
Y3JlYXRlZCBmb3IgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQg
cHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUg
SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApAQCAtMCwwICsxLDUgQEAKKy8qCisg
ICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisg
ICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFp
bnRXb3JrbGV0LmNwcAppbmRleCAxMzZlNGYxNGVjZmU1ZTRiOWY5Yzk1MjAyNzQzOWE0YTMxZDQ5
NjQ1Li4yODVkNTZkMGM2ZTBlN2VhNTFlNmQ0NmM5YTNjMWY5MWE5N2YyZTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcApAQCAtNTYsMTEgKzU2LDE4IEBAIGNv
bnN0IGNoYXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVy
biAiRE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVs
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0
aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorLy8gRklYTUU6IEdl
dCByaWQgb2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUgc3RhbmRhcmQtY29tcGxpYW50
IFdvcmtsZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBhaW50V29ya2xldDo6YWRkTW9k
dWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJf
cyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
ZG93bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0byBtYXliZUNvbnRleHQgPSBQ
YWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRTb3VyY2VD
b2RlKG1vZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJM
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsK
QEAgLTcwLDkgKzc3LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xlCiAKICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CiAgICAgZm9y
IChhdXRvJiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9uTWFwKCkua2V5cygpKQotICAg
ICAgICBkb2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFr
ZVJlZihjb250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50LT5zZXRQYWludFdvcmtsZXRH
bG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CiAgICAgcHJv
bWlzZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+
PiBQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7CisgICAgLy8gRklYTUU6IEFk
ZCBpbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBiOWIxMzg1YmIwOGEzZjFjZWQ0
ZWIyYjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIyMDQ4MjIz
ZjJjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCkBAIC00MSwx
NSArNDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBjbGFzcyBQYWludFdvcmtsZXQg
ZmluYWwgOiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQYWludFdv
cmtsZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWlu
dFdvcmtsZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IFBhaW50V29y
a2xldChkb2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICAgICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNb2R1bGUoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmtsZXQuCisgICAgdm9pZCBhZGRN
b2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxT
Y29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAg
UGFpbnRXb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhaW50V29ya2xldChEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1bWVudCkKKyAgICB7IH0KIH07
CiAKIGNsYXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERP
TUNTU05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmFjZjNmMThjYWRj
Njg2YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMzZmIzMmMx
N2QwZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDM5LDcgKzg0Mzks
NyBAQCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50
OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5z
dXJlUGFpbnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRXb3JrbGV0KQotICAgICAgICBt
X3BhaW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGFpbnRX
b3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wYWlu
dFdvcmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKaW5kZXggMDZhM2VjOTA2NTU4MjZmYmNkOTFhODNiNjQxZTI3ZjU5ZTc1ZGU2MC4uMGNj
Y2MxMTgxNjNmOTRlNWVmMjU4NzAyZTIyOGIyMWQ5ZDYyZDVmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEyNyw2ICsxMjcsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgY3NzUGFpbnRpbmdBUElFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9D
U1NQYWludGluZ0FQSUVuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KyAgICB2b2lkIHNldEF1ZGlvV29ya2xldEFQSUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9h
dWRpb1dvcmtsZXRBUElFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBhdWRpb1dvcmts
ZXRBUElFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1dvcmtsZXRBUElFbmFibGVkOyB9
CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgdm9pZCBzZXRDU1NUeXBl
ZE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX0NTU1R5cGVkT01FbmFibGVkID0gaXNFbmFi
bGVkOyB9CiAgICAgYm9vbCBjc3NUeXBlZE9NRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NT
VHlwZWRPTUVuYWJsZWQ7IH0KQEAgLTMwMiw2ICszMDcsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGJvb2wgbV9DU1NQYWludGluZ0FQSUVuYWJsZWQgeyBm
YWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBib29sIG1fYXVkaW9X
b3JrbGV0QVBJRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfVFlQ
RURfT00pCiAgICAgYm9vbCBtX0NTU1R5cGVkT01FbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAppbmRleCA3OTBkYjRiN2U5NmZhOTZkZjg4ZmQ2NzhjYWUwYzcyZTUy
M2E4MTk5Li43Y2Q1ZGYxMGZmZDEwZmY3M2Q0OTNiZTFjMDlhODE5ZDI0NTI2NDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC0yNTksOCArMjU5LDYgQEAgcHJlZml4ZWRXZWJBdWRp
b0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiBtb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFi
bGVkOgogICBpbml0aWFsOiBmYWxzZQotYXVkaW9Xb3JrbGV0RW5hYmxlZDoKLSAgaW5pdGlhbDog
ZmFsc2UKIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIGZ1
bGxTY3JlZW5FbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVk
aWFTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCmlu
ZGV4IDQzZDU3NjUyOThjMDY3OTJjNmRkY2U4NWM0MmEwYTNmNTc1YTg3ODMuLjk4NTIwNWRhYmFh
YjhkYTM4NmY2NTY0ZDgwOTZmZDI4NjU1YzFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVN0cmF0ZWd5LmgKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IE5vd1BsYXlpbmdJbmZvOwog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CiAjaWYgRU5BQkxF
KFdFQl9BVURJTykKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAorICAgIHZpcnR1YWwgUmVmPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCiAgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYsIGNv
bnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSA9IDA7
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCBkZWI3NTdkYzQ1ZTU3ODU4NTIxN2Zk
M2JlYzA3MTJiNjQ0ZDc1Mzc0Li4xNjBjNjU3OGUxNWVkNWVhNzUyNWRjNzY4YmQ0ZWYzZmRjNzRm
NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3Rp
bmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25faAogCiAj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00MCwxNiArNDEsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogLy8gVGhlIGF1ZGlvIGhh
cmR3YXJlIHBlcmlvZGljYWxseSBjYWxscyB0aGUgQXVkaW9JT0NhbGxiYWNrIHJlbmRlcigpIG1l
dGhvZCBhc2tpbmcgaXQgdG8gcmVuZGVyL291dHB1dCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBv
ZiBhdWRpby4KIC8vIEl0IG9wdGlvbmFsbHkgd2lsbCBwYXNzIGluIGxvY2FsL2xpdmUgYXVkaW8g
aW5wdXQgd2hlbiBpdCBjYWxscyByZW5kZXIoKS4KIAotY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7
CitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1
ZGlvRGVzdGluYXRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICAvLyBQYXNzIGluIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBpZiBsaXZlL2xvY2Fs
IGF1ZGlvIGlucHV0IGlzIGRlc2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZpYyBkZXZpY2UgaWRl
bnRpZmljYXRpb24gaW5mb3JtYXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcyBjYW4g
YmUgcGFzc2VkIGluIHRoZSBpbnB1dERldmljZUlkLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFj
ayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0
ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBpc1BsYXlpbmcoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4
IDc0YWQ2MTZmYTllMjVkZWI5OTljOTZiNjY3ZWQxNDk0NzBiZjY4NzIuLmRhNGU0YjJjOGI2MDcz
NDgzZjlmYWRjNjdiYWZiZmZmODY4NWY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApA
QCAtNDEsNyArNDEsNyBAQCBjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2Nv
YU92ZXJyaWRlIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRy
OwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9u
OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWdu
ZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1dERl
dmljZUlkIGFzIGFwcHJvcHJpYXRlLgogCkBAIC01NSw3ICs1NSw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiBjYWxsCiAgICAgaWYgKEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUp
CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlKGNh
bGxiYWNrLCBzYW1wbGVSYXRlKTsKIAotICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlVW5pcXVl
PEF1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IHNhbXBsZVJhdGUpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdFJlZigqbmV3IEF1ZGlv
RGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxl
UmF0ZSkpOwogICAgIGRlc3RpbmF0aW9uLT5jb25maWd1cmUoKTsKICAgICByZXR1cm4gZGVzdGlu
YXRpb247CiB9CkBAIC0xMDMsOSArMTAzLDEwIEBAIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRpb25D
b2NvYTo6ZnJhbWVzUGVyQnVmZmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJCdXMtPmxl
bmd0aCgpOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9pZCBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6c3RhcnQiKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQg
PSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIE9TU3RhdHVzIHJlc3VsdCA9
IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAKICAgICBpZiAoIXJlc3VsdCkK
QEAgLTExNiw2ICsxMTcsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiB7
CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wIik7CiAgICAgT1NT
dGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIG1f
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiAKICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgc2V0SXNQbGF5aW5nKGZhbHNlKTsKQEAgLTEyMyw2ICsxMjUsNyBAQCB2b2lkIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpz
ZXRJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX2lzUGxheWluZ0xvY2spOwogICAgIGlmIChtX2lzUGxheWluZyA9PSBpc1BsYXlpbmcpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTczLDE4ICsxNzYsMzggQEAgT1NTdGF0dXMgQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUlu
dDMyIG4KIAogICAgIC8vIEFzc29jaWF0ZSB0aGUgZGVzdGluYXRpb24gZGF0YSBhcnJheSB3aXRo
IHRoZSBvdXRwdXQgYnVzIHRoZW4gZmlsbCB0aGUgRklGTy4KICAgICBhc3NpZ25BdWRpb0J1ZmZl
cnNUb0J1cyhidWZmZXJzLCBtX291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBudW1i
ZXJPZkZyYW1lcywgMCwgbnVtYmVyT2ZGcmFtZXMpOwotICAgIHNpemVfdCBmcmFtZXNUb1JlbmRl
ciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IHNpemVfdCBmcmFtZXNUb1JlbmRlcjsKIAorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2ZpZm9Mb2NrKTsKKyAgICAgICAgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8tPnB1
bGwobV9vdXRwdXRCdXMucHRyKCksIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICAvLyBX
aGVuIHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlv
V29ya2xldFRocmVhZC4KKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAg
ICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBmcmFtZXNUb1JlbmRlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0ZDo6
dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2lzUGxheWluZ0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2sp
OworICAgICAgICAgICAgaWYgKGxvY2sub3duc19sb2NrKCkgJiYgbV9pc1BsYXlpbmcpCisgICAg
ICAgICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7CisgICAg
ICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1l
c1RvUmVuZGVyKTsKKworICAgIHJldHVybiBub0VycjsKK30KKworLy8gVGhpcyBydW5zIG9uIHRo
ZSBBdWRpb1dvcmtsZXRUaHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwgb24gdGhl
IGF1ZGlvIGRldmljZSdzIHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgordm9pZCBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVu
ZGVyKQorewogICAgIGZvciAoc2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8
IGZyYW1lc1RvUmVuZGVyOyBwdXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKSB7CiAgICAgICAgIGlmIChtX3Jlc2FtcGxlcikKICAgICAgICAgICAgIG1fcmVz
YW1wbGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NhbGxiYWNr
LnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2ZpZm9Mb2NrKTsKICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0cigp
KTsKICAgICB9Ci0KLSAgICByZXR1cm4gbm9FcnI7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0
IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IDAwZGRhMmZiMmEzN2I4M2YxMGVm
YTUyNzFiMTc2OGE4MGI0ODExZWMuLjA4OTRkNjIxYTJmMTUzMjI1MTI3MzY1MGI2ZTVhM2QzZWM5
OTZmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEF1
ZGlvQnVzOwogY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOwogY2xhc3MgUHVzaFB1bGxGSUZP
OwogCi11c2luZyBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9IHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1w
bGVSYXRlKTsKK3VzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gUmVm
PEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUp
OwogCiAvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRlZmF1bHQgb3V0
cHV0IEF1ZGlvVW5pdAogY2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNvY29hIDogcHVibGljIEF1ZGlv
RGVzdGluYXRpb24sIHB1YmxpYyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKQEAgLTY1LDExICs2NSwx
NSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHNldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
bihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworCiBwcml2YXRlOgot
ICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7CiAKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCwgdW5zaWduZWQsIGZsb2F0KTsKKyAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQo
c2l6ZV90IGZyYW1lc1RvUmVuZGVyKTsKKworICAgIGZyaWVuZCBSZWY8QXVkaW9EZXN0aW5hdGlv
bj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOwogICAgIAogICAgIC8vIEF1ZGlvU291cmNl
UHJvdmlkZXIuCiAgICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKSBmaW5hbDsKQEAgLTkxLDExICs5NSwxNCBAQCBwcml2YXRlOgogICAgIC8vIFJl
c29sdmVzIHRoZSBidWZmZXIgc2l6ZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBXZWJBdWRpbyBlbmdp
bmUgYW5kCiAgICAgLy8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZyb20gdGhlIGFjdHVhbCBhdWRp
byBkZXZpY2UuCiAgICAgVW5pcXVlUmVmPFB1c2hQdWxsRklGTz4gbV9maWZvOworICAgIExvY2sg
bV9maWZvTG9jazsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+
IG1fcmVzYW1wbGVyOwogICAgIEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFRpbWVzdGFtcDsKIAog
ICAgIGZsb2F0IG1fY29udGV4dFNhbXBsZVJhdGU7CisKKyAgICBMb2NrIG1faXNQbGF5aW5nTG9j
azsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCA4ZmRlYjZhMjQyNDg0OWNhYzE3YmJlOTBh
YWU3MTJhODlhMjRkMTAwLi5hMjkwNGYyNmIwMmM3MTcwYTk3NzJkYTkzYzJlOTYzNjhmYjA3N2Q3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC0xNjUsNyAr
MTY1LDcgQEAgZ2Jvb2xlYW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2Fn
ZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIHJldHVybiBUUlVFOwogfQogCi12b2lkIEF1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KCkKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lcjo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKQogewogICAg
IEFTU0VSVChtX2F1ZGlvU2lua0F2YWlsYWJsZSk7CiAgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWls
YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IGNmZTY4OTIw
OGQwOTY4YTUxYThiYjFkMWU4N2Y2ZTE5ZDBmMjMxNjYuLmQ1NTEwNGM4OGNjYmNkZmZmZjk3YzRl
N2E0OTQ5ODZmOTk2YmY4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIu
aApAQCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6CiAgICAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
cihBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICB2aXJ0dWFsIH5BdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyKCk7CiAKLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAK
ICAgICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcAppbmRleCA5ZGFhN2QwMTQxZDgxMDRlNGY1YzRjMjY0OGJjOGM2YmU1
MjZjMGM4Li41YTEyY2RlNGZjZGZjNTdmYWQ0MmI3ZDllOGZlNzMyMDQzNTA5ZDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAKQEAgLTQ1LDggKzQ1LDkgQEAgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAog
CiBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjp+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgp
ID0gZGVmYXVsdDsKIAotdm9pZCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2
b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rp
b248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogeworICAgIG1fZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAg
bV90aW1lci5zdGFydFJlcGVhdGluZyhTZWNvbmRzIHsgbV9udW1iZXJPZkZyYW1lc1RvUHJvY2Vz
cyAvIHNhbXBsZVJhdGUoKSB9KTsKICAgICBzZXRJc1BsYXlpbmcodHJ1ZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5oCmluZGV4IGQ0ZWFlODMzNDM1YzBhNjA0NTVlZDBiOTY5MjU2OGM4ZWM2M2YzNmQuLmE4
ZDI4YzRlZDFiYmVmZmQzMzA5NDUwZGFhZjMyOWViYTI1MzRjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5o
CkBAIC0zOCwxMiArMzgsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogY2xhc3MgTW9ja0F1
ZGlvRGVzdGluYXRpb25Db2NvYSBmaW5hbCA6IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2Eg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpIHsgcmV0dXJuIG1ha2VVbmlxdWU8TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOyB9CisgICAgc3RhdGljIFJlZjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQg
c2FtcGxlUmF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsKKyAgICB9CisKICAgICBX
RUJDT1JFX0VYUE9SVCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYs
IGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfk1vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHN0YXJ0KCkgZmluYWw7
CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZp
bmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCiAgICAgdm9pZCB0aWNrKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGIyZjMzMTJjZjRi
MDQ2MWI4N2ZhYWFjMzljZDQyYTA2M2U1OGFjNzMuLjFmZTkzOTg3ZWY5NjFmZGZiZTM4ZjQ3Y2E2
NzFhZjVmZGE5OGQ5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuY3BwCkBAIC01NDQsNCArNTQ0LDkgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2VyR2xvYmFs
U2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcnJlclBvbGlj
eTsKIH0KIAorVGhyZWFkKiBXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLnRocmVhZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggYmQ5Y2YxNDBkZDUyZmI4NDk4YjlmYTQxMDYwYzkzYWJmYTY4Mzg1ZS4uOTBkZjNiNmFmM2Q2
M2VjNjFhZWM5YTEyM2MwODc3ZTc5ZTM0YjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlQml0
bWFwLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlN1
cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCkBA
IC01OSw3ICs2MCw3IEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlv
blByb3h5OwogfQogCi1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNj
b3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzIHsKK2NsYXNzIFdvcmtlckdsb2Jh
bFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3Vw
cGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxpdGllcywgcHVibGljIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlckdsb2JhbFNjb3Bl
KTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZSgpOwpAQCAtODUsMTMg
Kzg2LDE1IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24mIHN3Q2xpZW50
Q29ubmVjdGlvbigpOwogI2VuZGlmCiAKLSAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3Jp
cHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgdm9pZCBj
bGVhclNjcmlwdCgpIHsgbV9zY3JpcHQgPSBudWxscHRyOyB9CiAKICAgICBXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1faW5z
cGVjdG9yQ29udHJvbGxlcjsgfQogCiAgICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBjb25zdCB7
IHJldHVybiBtX3RocmVhZDsgfQogCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29u
c3QgZmluYWw7CisKICAgICB1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpoYXNQZW5kaW5n
QWN0aXZpdHk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFRhc2smJikgZmluYWw7IC8vIEV4ZWN1dGVz
IHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCkBAIC0xMTksNyAr
MTIyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBS
ZWZDb3VudGVkOjpkZXJlZjsKIAotICAgIGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4gbV9jbG9z
aW5nOyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nsb3Np
bmc7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0OGUw
ODQ4YmUzNTIyYjZhZDljMzI4NTMzOTc0NmM3YzM5NzQyOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV1RG
IHsKK2NsYXNzIFRocmVhZDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSgpID0gZGVm
YXVsdDsKKworICAgIHZpcnR1YWwgV1RGOjpUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQ2xvc2luZygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpID0gMDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY5YmY4
M2U5MzBkZDE2NWQ4YTMzMDQ3MDUyYWQ1NWQyMmZhZmE3OAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRp
bWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSGVh
cEFjY2VzcygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxv
b3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5v
dGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hdGlu
Z0V4ZWN1dGlvbigpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4IDY2ZWNkNTM2ZjgxM2Qw
MjljNDk3ZjFhZWE3ZjIxOWVkZmM3NWIzNzUuLmJiNjFmYzVmMmE5N2RiODRiMTEzYmUyMjNjN2E3
YWRjNzE5YjQ5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApA
QCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRl
ICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAi
V29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaWYgVVNFKEdMSUIpCkBAIC0xMzIs
NyArMTMyLDcgQEAgcHJpdmF0ZToKICAgICBJc0ZvckRlYnVnZ2luZyBtX2lzRm9yRGVidWdnaW5n
IHsgSXNGb3JEZWJ1Z2dpbmc6Ok5vIH07CiB9OwogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihX
b3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1
cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwogICAgIE1vZGVQcmVk
aWNhdGUgbW9kZVByZWRpY2F0ZShkZWZhdWx0TW9kZSgpKTsKQEAgLTE0MywxMyArMTQzLDEzIEBA
IHZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQogICAg
IHJ1bkNsZWFudXBUYXNrcyhjb250ZXh0KTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBX
b3JrZXJSdW5Mb29wOjpydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4
dCkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1v
ZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNl
dHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpZZXMpOwogICAg
IHJldHVybiBydW5Jbk1vZGUoJmNvbnRleHQsIE1vZGVQcmVkaWNhdGUgeyBkZWJ1Z2dlck1vZGUo
KSB9LCBXYWl0Rm9yTWVzc2FnZSk7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2Vy
UnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3Jr
ZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKG1v
ZGUgIT0gZGVidWdnZXJNb2RlKCkpOwogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVu
TG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwpAQCAtMTU4LDEwICsxNTgsMTAgQEAgTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFs
U2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1NZXNzYWdlUXVl
dWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSog
Y29udGV4dCwgY29uc3QgTW9kZVByZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9k
ZSkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVk
aWNhdGUsIFdhaXRNb2RlIHdhaXRNb2RlKQogewogICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBB
U1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsK
KyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJl
bnQoKSk7CiAKICAgICBKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxi
YWNrIHRpbWVyQWRkZWRUYXNrID0gV1RGOjpjcmVhdGVTaGFyZWRUYXNrPEpTQzo6SlNSdW5Mb29w
VGltZXI6OlRpbWVyTm90aWZpY2F0aW9uVHlwZT4oW3RoaXNdIHsKICAgICAgICAgLy8gV2UgZG9u
J3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgaGVyZSwgd2UganVzdCB3YW50IHRvIGxvb3AgYXJvdW5k
IHJ1bkluTW9kZQpAQCAtMTg2LDEzICsxODYsMTMgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBX
b3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMK
ICAgICBpZiAod2FpdE1vZGUgPT0gV2FpdEZvck1lc3NhZ2UgJiYgcHJlZGljYXRlLmlzRGVmYXVs
dE1vZGUoKSAmJiBtX3NoYXJlZFRpbWVyLT5pc0FjdGl2ZSgpKQogICAgICAgICB0aW1lb3V0RGVs
YXkgPSBzdGQ6Om1pbih0aW1lb3V0RGVsYXksIG1fc2hhcmVkVGltZXItPmZpcmVUaW1lRGVsYXko
KSk7CiAKLSAgICBpZiAoV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gY29udGV4dC0+
c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsK
ICAgICAgICAgc2NyaXB0LT5yZWxlYXNlSGVhcEFjY2VzcygpOwogICAgICAgICBzY3JpcHQtPmFk
ZFRpbWVyU2V0Tm90aWZpY2F0aW9uKHRpbWVyQWRkZWRUYXNrKTsKICAgICB9CiAgICAgTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byB0YXNrID0gbV9tZXNzYWdlUXVldWUu
d2FpdEZvck1lc3NhZ2VGaWx0ZXJlZFdpdGhUaW1lb3V0KHJlc3VsdCwgcHJlZGljYXRlLCB0aW1l
b3V0RGVsYXkpOwotICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBjb250
ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQo
KSkgewogICAgICAgICBzY3JpcHQtPmFjcXVpcmVIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNjcmlw
dC0+cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KQEAg
LTIyMywxMCArMjIzLDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6
cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29ya2VyR2xv
YmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29udGV4
dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1
cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9PSAmVGhy
ZWFkOjpjdXJyZW50KCkpOwogICAgIEFTU0VSVChtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKSk7CiAK
ICAgICB3aGlsZSAodHJ1ZSkgewpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgV29ya2VyUnVuTG9v
cDo6cG9zdERlYnVnZ2VyVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykK
ICAgICBwb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgZGVidWdnZXJNb2RlKCkpOwogfQog
Ci12b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3Bl
KiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBpZiAoKCFjb250ZXh0LT5pc0Ns
b3NpbmcoKSAmJiBjb250ZXh0LT5zY3JpcHQoKSAmJiAhY29udGV4dC0+c2NyaXB0KCktPmlzVGVy
bWluYXRpbmdFeGVjdXRpb24oKSkgfHwgbV90YXNrLmlzQ2xlYW51cFRhc2soKSkKICAgICAgICAg
bV90YXNrLnBlcmZvcm1UYXNrKCpjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJS
dW5Mb29wLmgKaW5kZXggYThjOWRlYmQ4MGQ4MDk5NTRhN2E5ZDY5MGY3NzQwNmQyNTI4MjY2OC4u
ZWUyNmIzN2YyOTljYTY5OWMwNGMwYjFjNzQ0MTUwNDgwODcxNTdmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKQEAgLTM4LDcgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIGNsYXNzIE1vZGVQcmVkaWNhdGU7Ci0gICAgY2xhc3MgV29ya2VyR2xvYmFs
U2NvcGU7CisgICAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgY2xhc3Mg
V29ya2VyU2hhcmVkVGltZXI7CiAKICAgICBjbGFzcyBXb3JrZXJSdW5Mb29wIHsKQEAgLTQ3LDEz
ICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5Xb3JrZXJSdW5Mb29wKCk7
CiAgICAgICAgIAogICAgICAgICAvLyBCbG9ja2luZyBjYWxsLiBXYWl0cyBmb3IgdGFza3MgYW5k
IHRpbWVycywgaW52b2tlcyB0aGUgY2FsbGJhY2tzLgotICAgICAgICB2b2lkIHJ1bihXb3JrZXJH
bG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSopOwogCiAgICAgICAgIGVudW0gV2FpdE1vZGUgeyBXYWl0Rm9yTWVzc2FnZSwgRG9udFdhaXRG
b3JNZXNzYWdlIH07CiAKICAgICAgICAgLy8gV2FpdHMgZm9yIGEgc2luZ2xlIHRhc2sgYW5kIHJl
dHVybnMuCi0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckds
b2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdl
KTsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3Jr
ZXJHbG9iYWxTY29wZSYpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9k
ZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1v
ZGUgPSBXYWl0Rm9yTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVu
SW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmKTsKIAogICAgICAgICB2
b2lkIHRlcm1pbmF0ZSgpOwogICAgICAgICBib29sIHRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVy
biBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG1vZGUoKSBjb25zdCB7IHJldHVy
biBtX21vZGU7IH0KIAogICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgdm9pZCBwZXJmb3Jt
VGFzayhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrIG1fdGFzazsKICAgICAgICAgICAgIFN0cmluZyBtX21vZGU7CkBAIC04
MywxMSArODMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3BTZXR1cDsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCBydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGljYXRlJiwg
V2FpdE1vZGUpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0TW9kZSk7
CiAKICAgICAgICAgLy8gUnVucyBhbnkgY2xlYW4gdXAgdGFza3MgdGhhdCBhcmUgY3VycmVudGx5
IGluIHRoZSBxdWV1ZSBhbmQgcmV0dXJucy4KICAgICAgICAgLy8gVGhpcyBzaG91bGQgb25seSBi
ZSBjYWxsZWQgd2hlbiB0aGUgY29udGV4dCBpcyBjbG9zZWQgb3IgbG9vcCBoYXMgYmVlbiB0ZXJt
aW5hdGVkLgotICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxTY29wZSop
OworICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSopOwogCiAgICAgICAgIGJvb2wgaXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9k
ZWJ1Z0NvdW50ID49IDE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAppbmRleCAz
ZDZlMGI3YWYwMWUyMTg1ZTFjOWZmOWRiMDdmZmQzMGVkZGQyMTc4Li4zOTA4YmRmM2EyOTZjODFi
NmY0YmE4ZThlMDhlM2ZjNTgyZWU1ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNw
cApAQCAtMjgsMjcgKzI4LDc2IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKLSNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1
ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZVBy
b3h5LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorI2luY2x1ZGUgPHd0Zi9D
cm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmts
ZXQpOwogCi1SZWY8V29ya2xldD4gV29ya2xldDo6Y3JlYXRlKCkKK1dvcmtsZXQ6OldvcmtsZXQo
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrbGV0KCkpOwogfQogCi1Xb3JrbGV0OjpXb3Jr
bGV0KCkKK1dvcmtsZXQ6On5Xb3JrbGV0KCkgPSBkZWZhdWx0OworCitEb2N1bWVudCogV29ya2xl
dDo6ZG9jdW1lbnQoKQoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKK30KKworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dvcmtsZXRz
LTEvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQordm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoY29uc3Qg
U3RyaW5nJiBtb2R1bGVVUkxTdHJpbmcsIFdvcmtsZXRPcHRpb25zJiYgb3B0aW9ucywgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRo
aXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNo
ZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBVUkwgbW9kdWxlVVJMID0g
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1vZHVsZVVSTFN0cmluZyk7CisgICAgaWYgKCFtb2R1bGVV
UkwuaXNWYWxpZCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFN5bnRh
eEVycm9yLCAiTW9kdWxlIFVSTCBpcyBpbnZhbGlkIl9zIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1fcHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJveGllcy5h
cHBlbmRWZWN0b3IoY3JlYXRlR2xvYmFsU2NvcGVzKCkpOworCisgICAgYXV0byBwZW5kaW5nVGFz
a3MgPSBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocHJvbWlzZSks
IG1fcHJveGllcy5zaXplKCkpOworICAgIG1fcGVuZGluZ1Rhc2tzU2V0LmFkZChwZW5kaW5nVGFz
a3MuY29weVJlZigpKTsKKworICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMpIHsKKyAg
ICAgICAgcHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtwZW5kaW5n
VGFza3MgPSBwZW5kaW5nVGFza3MuY29weVJlZigpLCBtb2R1bGVVUkwgPSBtb2R1bGVVUkwuaXNv
bGF0ZWRDb3B5KCksIGNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscywgcGVuZGluZ0Fj
dGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAgICAgZG93bmNhc3Q8V29ya2xldEdsb2Jh
bFNjb3BlPihjb250ZXh0KS5mZXRjaEFuZEludm9rZVNjcmlwdChtb2R1bGVVUkwsIGNyZWRlbnRp
YWxzLCBbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3MpLCBwZW5kaW5nQWN0aXZp
dHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNl
cHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3BlbmRp
bmdUYXNrcyA9IFdURk1vdmUocGVuZGluZ1Rhc2tzKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRD
b3B5KGV4Y2VwdGlvbiksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+YWJvcnQoV1RGTW92ZSgqZXhjZXB0aW9u
KSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBl
bmRpbmdUYXNrcy0+ZGVjcmVtZW50Q291bnRlcigpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
ICAgIH0KK30KKwordm9pZCBXb3JrbGV0OjpmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRp
bmdUYXNrcyYgdGFza3MpCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQobV9wZW5kaW5nVGFza3NTZXQuY29udGFpbnMoJnRhc2tzKSk7CisKKyAgICBtX3BlbmRpbmdU
YXNrc1NldC5yZW1vdmUoJnRhc2tzKTsKIH0KIAotdm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK2NvbnN0IGNoYXIqIFdvcmtsZXQ6OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBBZGQgcHJvcGVyIGltcGxl
bWVudGF0aW9uLgotICAgIFVOVVNFRF9QQVJBTShtb2R1bGVVUkwpOwotICAgIHByb21pc2UucmVz
b2x2ZSgpOworICAgIHJldHVybiAiV29ya2xldCI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaAppbmRleCBiMmJlZGM2NTg2NWI3NGY1Zjk5NTZm
MDRjZmNjYzNmODM1MTlmMmUxLi40MTY4Njc0YzczYjI5OTA5YmE2Mjk2MjU3MjFiMzgwNTNlMjI3
YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oCkBAIC0yNSwyNyArMjUsNDUgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFi
bGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgV29ya2xl
dEdsb2JhbFNjb3BlUHJveHk7CitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOwogCi1zdHJ1Y3Qg
V29ya2xldE9wdGlvbnM7Ci0KLWNsYXNzIFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3Jr
bGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CitjbGFzcyBXb3JrbGV0IDogcHVibGljIFJl
ZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxXb3JrbGV0PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChXb3JrbGV0KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdvcmtsZXQ+
IGNyZWF0ZSgpOwotICAgIHZpcnR1YWwgfldvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVh
bCB+V29ya2xldCgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5n
JiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKKworICAgIHZvaWQgZmluaXNoUGVuZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFza3MmKTsK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8V29ya2xl
dEdsb2JhbFNjb3BlUHJveHk+PiYgcHJveGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJveGllczsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2xldCgpOworICAgIGV4cGxpY2l0IFdvcmtsZXQoRG9j
dW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWY8V29ya2xldEdsb2Jh
bFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSA9IDA7CisKKyAgICAvLyBBY3RpdmVE
T01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsOworCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IG1fcHJveGll
czsKKyAgICBIYXNoU2V0PFJlZlB0cjxXb3JrbGV0UGVuZGluZ1Rhc2tzPj4gbV9wZW5kaW5nVGFz
a3NTZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXQuaWRsCmluZGV4IDBiNzc0YzI3NGFhZjIwZTBjYzg4Mzc3MjcxYzcxNmEwMGZhZjllNjEu
LjI5M2NmMDZlMTU1NmU5YjU3N2EyYTRkMTk1ODhkMTY4MDZhYmVlNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXQuaWRsCkBAIC0yNCw4ICsyNCwxMCBAQAogKi8KIAogWworICAgIEFjdGl2
ZURPTU9iamVjdCwKICAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBHbG9iYWw9V29ya2xldCwKICAg
ICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV29ya2xldCB7Ci0gICAgW0NhbGxX
aXRoPURvY3VtZW50XSBQcm9taXNlPHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1
bGVVUkwsIG9wdGlvbmFsIFdvcmtsZXRPcHRpb25zIG9wdGlvbnMpOworICAgIFByb21pc2U8dW5k
ZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3RyaW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9w
dGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKaW5kZXggM2I3NTgyYWZmY2QwNGIxNDYyOTBmM2E3NDY4NjczNGFjNjkw
ZmVmMi4uZmI4YmFhNWRlZmM5ZTg3NTNmMGM0MmVlY2ZmOWI2NGVlMzIzNDAxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNyw4ICsy
Nyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3Bl
LmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKQEAgLTM2LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZl
bnRMb29wLmgiCi0jaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAg
LTQ3LDEwICs0NCwyMiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoV29ya2xldEdsb2JhbFNjb3BlKTsKIAorV29ya2xldEdsb2JhbFNj
b3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB3aW5kb3dVUkwpCisgICAgOiBtX3Nj
cmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRDb250cm9sbGVyPih0aGlzKSkKKyAgICAsIG1f
dG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSkKKyAgICAsIG1fdXJsKHdp
bmRvd1VSTCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9iYWxTY29wZXNT
ZXQoKS5hZGQodGhpcyk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdCk7
CisKKyAgICBzZXRTZWN1cml0eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3Jl
YXRlKG1fdG9wT3JpZ2luLmNvcHlSZWYoKSkpOworfQorCiBXb3JrbGV0R2xvYmFsU2NvcGU6Oldv
cmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBT
Y3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9j
dW1lbnQpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cj4oV1RGTW92ZSh2bSksIHRoaXMpKQogICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwoY29kZS51cmwoKSkKICAgICAsIG1fY29kZShX
VEZNb3ZlKGNvZGUpKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2JhbFNj
b3Blc1NldCgpLmFkZCh0aGlzKTsKQEAgLTYxLDcgKzcwLDcgQEAgV29ya2xldEdsb2JhbFNjb3Bl
OjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2
bSwgU2MKICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgpKTsKIAogICAgIHNldFNlY3VyaXR5T3Jp
Z2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJl
ZigpKSk7Ci0gICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNl
Y3VyaXR5UG9saWN5PihVUkwgeyBtX2NvZGUudXJsKCkgfSwgKnRoaXMpKTsKKyAgICBzZXRDb250
ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7
IHRoaXMtPnVybCgpIH0sICp0aGlzKSk7CiB9CiAKIFdvcmtsZXRHbG9iYWxTY29wZTo6fldvcmts
ZXRHbG9iYWxTY29wZSgpCkBAIC0xMTMsNyArMTIyLDggQEAgU3RyaW5nIFdvcmtsZXRHbG9iYWxT
Y29wZTo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdvcmtsZXRHbG9i
YWxTY29wZTo6ZXZhbHVhdGUoKQogewotICAgIG1fc2NyaXB0LT5ldmFsdWF0ZShtX2NvZGUpOwor
ICAgIGlmIChtX2NvZGUpCisgICAgICAgIG1fc2NyaXB0LT5ldmFsdWF0ZSgqbV9jb2RlKTsKIH0K
IAogYm9vbCBXb3JrbGV0R2xvYmFsU2NvcGU6OmlzSlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25z
dApAQCAtMTM1LDcgKzE0NSw3IEBAIFVSTCBXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJM
KGNvbnN0IFN0cmluZyYgdXJsLCBGb3JjZVVURjgpIGNvbnN0CiB7CiAgICAgaWYgKHVybC5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwotICAgIHJldHVybiBVUkwobV9jb2RlLnVybCgp
LCB1cmwpOworICAgIHJldHVybiBVUkwodGhpcy0+dXJsKCksIHVybCk7CiB9CiAKIHZvaWQgV29y
a2xldEdsb2JhbFNjb3BlOjpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNv
bHVtbk51bWJlciwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKQEAgLTE3MSw1ICsx
ODEsMTEgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGlj
eSgpIGNvbnN0CiAgICAgcmV0dXJuIFJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOwogfQogCit2
b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiwg
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApp
bmRleCAyNWQ1NDlhYzRhMGFhNmZmNzUyODc1NWQ3MDQ3YzgxNGVlN2RjNDA0Li45ODE0MTU5ZGUy
YjUwM2E4MDhjODA4NzA0MmY2NzM1MzY3YmZmMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMjYsMzAgKzI2LDMyIEBACiAKICNwcmFnbWEg
b25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
KyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVk
ZSAiV29ya2VyRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
UnVudGltZUZsYWdzLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnRMb29wVGFz
a0dyb3VwOwogY2xhc3MgV29ya2VyRXZlbnRMb29wOwotY2xhc3MgV29ya2xldFNjcmlwdENvbnRy
b2xsZXI7CiAKIGVudW0gV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNp
bmcgV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xl
dEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworY2xhc3Mg
V29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3Bl
PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFs
U2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAt
NTcsMTEgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0
ID0gSGFzaFNldDxjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUqPjsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgV29ya2xldEdsb2JhbFNjb3Blc1NldCYgYWxsV29ya2xldEdsb2JhbFNjb3Blc1Nl
dCgpOwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgdmlydHVhbCBib29sIGlz
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlm
CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKIAogICAgIEV2ZW50
TG9vcFRhc2tHcm91cCYgZXZlbnRMb29wKCkgZmluYWw7CiAKLSAgICBjb25zdCBVUkwmIHVybCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZS51cmwoKTsgfQorICAgIGNvbnN0IFVSTCYgdXJs
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91cmw7IH0KIAogICAgIHZvaWQgZXZhbHVhdGUoKTsK
IApAQCAtNzAsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CisgICAgV29ya2xldFNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAK
ICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNv
bnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsKIApAQCAtNzksNiArODYsMTAgQEAgcHVibGljOgogCiAg
ICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQogCisgICAgLy8gV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgVGhyZWFkKiB1
bmRlcmx5aW5nVGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAg
IGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc0Nsb3Npbmc7IH0KKwog
ICAgIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIGJvb2wgaXNTZWN1cmVDb250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0K
IApAQCAtODYsNyArOTcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVG
b3JEZXN0cnVjdGlvbigpOwogCisgICAgdm9pZCBmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBV
UkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVjdGVkOgorICAgIFdvcmtsZXRHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCk7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKERvY3Vt
ZW50JiwgUmVmPEpTQzo6Vk0+JiYsIFNjcmlwdFNvdXJjZUNvZGUmJik7CiAgICAgV29ya2xldEds
b2JhbFNjb3BlKGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSYpID0gZGVsZXRlOwogICAgIFdvcmts
ZXRHbG9iYWxTY29wZShXb3JrbGV0R2xvYmFsU2NvcGUmJikgPSBkZWxldGU7CkBAIC0xMzYsOCAr
MTUwLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExv
b3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFz
a0dyb3VwOwogCisgICAgVVJMIG1fdXJsOwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fanNSdW50
aW1lRmxhZ3M7Ci0gICAgU2NyaXB0U291cmNlQ29kZSBtX2NvZGU7CisgICAgT3B0aW9uYWw8U2Ny
aXB0U291cmNlQ29kZT4gbV9jb2RlOworICAgIGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtMTQ1LDQgKzE2MSwzIEBAIHByaXZhdGU6
CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29w
ZSkKIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzV29ya2xldEdsb2JhbFNjb3BlKCk7IH0K
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKaW5kZXggZDc1OWYwY2UxZDE2Zjg2OTE4
NjAxMjc3NmYwZGIxNmI2MWJhYTQ3OC4uYjYzMjI0ZGQxZWExOGMwM2MwNTMyM2I3M2VhNTg1YmUz
OTJkY2MyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsCkBAIC0yNiw3ICsyNiw2IEBACiBbCiAgICAgQ3VzdG9tUHJveHlUb0pTT2JqZWN0LAog
ICAgIEV4cG9zZWQ9V29ya2xldCwKLSAgICBFbmFibGVkQXRSdW50aW1lPUNTU1BhaW50aW5nQVBJ
LAogICAgIENvbmRpdGlvbmFsPUNTU19QQUlOVElOR19BUEksCiAgICAgSlNMZWdhY3lQYXJlbnQ9
SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLAogICAgIEltcGxpY2l0VGhpcywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFhYzVkOTFjYzdkMDI0MjBiNWZhZmYyMTkxYzBlZWY4ZmY5YTVkN2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoK
KyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxz
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldFBlbmRpbmdUYXNrczsKKworY2xhc3MgV29y
a2xldEdsb2JhbFNjb3BlUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xl
dEdsb2JhbFNjb3BlUHJveHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xvYmFs
U2NvcGVQcm94eSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1v
ZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNv
bnN0IFN0cmluZyYgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29ya2xldE1l
c3NhZ2luZ1Byb3h5KCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZmZlNWQ3NjFhZjQ2ZjI2MTQxMTc5MDRhYzEwNGMzMDQ5MTE0NWQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5j
cHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rh
c2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBlbmRpbmdUYXNrczo6V29y
a2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICA6IG1fd29ya2xldChtYWtlV2Vha1B0cih3
b3JrbGV0KSkKKyAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwgbV9jb3Vu
dGVyKGNvdW50ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKK30KKwordm9pZCBX
b3JrbGV0UGVuZGluZ1Rhc2tzOjphYm9ydChFeGNlcHRpb24mJiBleGNlcHRpb24pCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fY291bnRlciA9IC0xOworICAgIG1fcHJvbWlzZS5yZWplY3Qo
V1RGTW92ZShleGNlcHRpb24pKTsKKyAgICBpZiAobV93b3JrbGV0KQorICAgICAgICBtX3dvcmts
ZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7Cit9CisKK3ZvaWQgV29ya2xldFBlbmRpbmdU
YXNrczo6ZGVjcmVtZW50Q291bnRlcigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAgIC0tbV9j
b3VudGVyOworICAgIGlmICghbV9jb3VudGVyKSB7CisgICAgICAgIG1fcHJvbWlzZS5yZXNvbHZl
KCk7CisgICAgICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgICAgICBtX3dvcmtsZXQtPmZpbmlz
aFBlbmRpbmdUYXNrcygqdGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tz
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzMzZDZiYmFiZTBlOWI5M2UyODNhMzI4NjcxNWNhODlkYzI2YzA5YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0OworCisvLyBodHRwczovL2RyYWZ0
cy5jc3MtaG91ZGluaS5vcmcvd29ya2xldHMvI3BlbmRpbmctdGFza3Mtc3RydWN0CitjbGFzcyBX
b3JrbGV0UGVuZGluZ1Rhc2tzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtsZXRQ
ZW5kaW5nVGFza3M+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtsZXRQZW5kaW5nVGFz
a3M+IGNyZWF0ZShXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlLCBpbnQgY291bnRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdvcmtsZXRQZW5kaW5nVGFza3Mod29ya2xldCwgV1RGTW92ZShwcm9taXNlKSwgY291bnRlcikp
OworICAgIH0KKworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uJiYpOworICAgIHZvaWQgZGVjcmVt
ZW50Q291bnRlcigpOworCitwcml2YXRlOgorICAgIFdvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xl
dCYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmLCBpbnQgY291bnRlcik7CisKKyAgICBXZWFr
UHRyPFdvcmtsZXQ+IG1fd29ya2xldDsKKyAgICBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4gbV9w
cm9taXNlOworICAgIGludCBtX2NvdW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5jcHAKaW5kZXggMjBhNmY4NTYxODU4YWRmYmUyZTJiYzE4ZWJmNzE1MGI5N2FkMTRmOC4uMTdk
ZjVlMWYzY2YwNjU3MTRiY2VmNzVlZDg1ZmNhZDUzOGY2ZTgwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjYsOCAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1ZGUgIkpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNp
bmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKQEAgLTU2
LDYgKzU1LDExIEBAIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcihSZWY8Vk0+JiYgdm0sIFdvcmtsZXRHbG9iYWxTY29wCiAgICAgSlNWTUNsaWVudERhdGE6
OmluaXROb3JtYWxXb3JsZChtX3ZtLmdldCgpKTsKIH0KIAorV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSogd29ya2xldEds
b2JhbFNjb3BlKQorICAgIDogV29ya2xldFNjcmlwdENvbnRyb2xsZXIoVk06OmNyZWF0ZSgpLCB3
b3JrbGV0R2xvYmFsU2NvcGUpCit7Cit9CisKIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjp+V29y
a2xldFNjcmlwdENvbnRyb2xsZXIoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKCkpOwpA
QCAtMTQ1LDEwICsxNDksMTkgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNj
cmlwdCgpCiAgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCiAgICAgICAgIHJldHVybjsK
IAorI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGlmIChpczxQYWludFdvcmtsZXRH
bG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7CiAgICAgICAgIGluaXRTY3JpcHRX
aXRoU3ViY2xhc3M8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVByb3RvdHlwZSwgSlNQYWludFdv
cmtsZXRHbG9iYWxTY29wZSwgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgaWYgKGlz
PEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsKKyAgICAg
ICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlUHJvdG90
eXBlLCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLCBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4o
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CkBAIC0xOTYsNSArMjA5LDYyIEBAIHZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OnNldEV4Y2VwdGlvbihKU0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uKQogICAgIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOwogfQogCit2b2lk
IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZWxlYXNlSGVhcEFjY2VzcygpCit7CisgICAgbV92
bS0+aGVhcC5yZWxlYXNlQWNjZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmFjcXVpcmVIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLmFjcXVpcmVBY2Nlc3Mo
KTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWRkVGltZXJTZXROb3RpZmlj
YXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayBjYWxs
YmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGltZXIqIHRp
bWVyKSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IHRpbWVyLT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsKKworICAg
IHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHBy
b2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nl
c3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQgV29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5M
b29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgYXV0
byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVyKiB0aW1lcikgeworICAgICAgICBp
ZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aW1lci0+cmVtb3ZlVGlt
ZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisKKyAgICBwcm9jZXNzVGltZXIo
bV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92
bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+
ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCkKK3sKKyAgICBpZiAobV9pc1Rlcm1p
bmF0aW5nRXhlY3V0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB7CisgICAgICAgIC8vIFRo
ZSBtdXRleCBwcm92aWRlcyBhIG1lbW9yeSBiYXJyaWVyIHRvIGVuc3VyZSB0aGF0IG9uY2UKKyAg
ICAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9u
KCkgd2lsbAorICAgICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBsZXhpY2FsR2xvYmFs
T2JqZWN0IHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgICAgICBtX2lz
VGVybWluYXRpbmdFeGVjdXRpb24gPSB0cnVlOworICAgIH0KKyAgICBtX3ZtLT5ub3RpZnlOZWVk
VGVybWluYXRpb24oKTsKK30KKworYm9vbCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aXNUZXJt
aW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0Cit7CisgICAgLy8gU2VlIGNvbW1lbnRzIGluIHNjaGVk
dWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdlLgorICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgIHJldHVy
biBtX2lzVGVybWluYXRpbmdFeGVjdXRpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmgKaW5kZXggZTM2ZDJhMjQyYmY1NDY0ZmEyN2NmM2RhOWFiNTI4NGYwMDA0ZDZlZS4u
NmQ0M2NlNWY5ZmZkMmE3MGFmMGJmNmU1YWVlNTRjZDhmYWM3MmYyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNSw4ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0K
KyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1
bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpAQCAtNDYs
OSArNDUsMTEgQEAgY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrbGV0R2xv
YmFsU2NvcGU7CiBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIAotY2xhc3MgV29ya2xldFNj
cmlwdENvbnRyb2xsZXIgeworLy8gRklYTUU6IFdlIHNob3VsZCBzaGFyZSBtb3JlIGNvZGUgd2l0
aCBXb3JrZXJTY3JpcHRDb250cm9sbGVyLgorY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXIg
OiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV29ya2xldFNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3Jr
bGV0R2xvYmFsU2NvcGUqKTsKICAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8SlNDOjpW
TT4mJiwgV29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgfldvcmtsZXRTY3JpcHRDb250cm9sbGVy
KCk7CiAKQEAgLTY0LDYgKzY1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2FibGVFdmFsKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpc2FibGVXZWJBc3NlbWJseShj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNz
KCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOworCisgICAgdm9p
ZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlm
aWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0
aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFs
OworCisgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAgYm9vbCBp
c1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGV2YWx1YXRl
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2Fn
ZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYs
IE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0
dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKQEAgLTg3LDcgKzk3LDggQEAgcHJp
dmF0ZToKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUqIG1fd29ya2xldEdsb2JhbFNjb3BlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXb3JrbGV0Q29uc29sZUNsaWVudD4gbV9jb25zb2xlQ2xpZW50Owog
ICAgIEpTQzo6U3Ryb25nPEpTV29ya2xldEdsb2JhbFNjb3BlPiBtX3dvcmtsZXRHbG9iYWxTY29w
ZVdyYXBwZXI7CisgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrOwor
ICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAK
aW5kZXggNmExMDFjMzk1OTNjYzRjMTU0Yzc0NWY2ZDc5NzM3YTAyYTkyM2Y2ZC4uMGI5YWIxZGNl
MzRhNTIwZDgyZTJmYWQ1ZjVkMDZhODY5ZWY3NGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcCgpOwogICAg
IH0KIAotICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2
b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCh7IH0pOyB9CiAgICAgdm9pZCBzdG9w
KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7IH0KICAgICBib29sIGlzUGxheWluZygpIHsgcmV0
dXJuIG1fZGVzdGluYXRpb24tPmlzUGxheWluZygpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVzUGVy
QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+ZnJhbWVzUGVyQnVmZmVyKCkg
OyB9CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRp
ZmllciBtX2lkOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3Rp
bmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAg
IFJlZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2Vm
dWxTaHV0ZG93bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRl
eCAwNjk0NWJhZmQ1ZDE4OWM3YTBmOWM3MjQwMmJiODg5ZGM4MDdmNmY0Li44MjEzODAwYjlmMTBj
NTgyNjBlMDdhNzkwZjdjYjIwYTdlMGVhMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwCkBAIC00MywxMCArNDMsMTAgQEAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpB
dWRpb0J1czsKIHVzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uOwogdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOwog
Ci1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKK1JlZjxBdWRpb0Rlc3Rp
bmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLAogICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKQogewotICAgIHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eT4oY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFu
bmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KGNhbGxiYWNrLCBpbnB1dERl
dmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNh
bXBsZVJhdGUpKTsKIH0KIAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVk
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCkBAIC03Nyw4ICs3Nyw5
IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpz
dGFydCgpCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQoRnVuY3Rpb248
dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7Cisg
ICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlv
bklEKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpT
dGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CkBAIC04OSwxOSAr
OTAsMzEgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCiAgICAgICAg
IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGlu
YXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJl
bmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9CdXNEYXRh
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgZG9lcyByZW5kZXJpbmcgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gQXVk
aW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUsIHdoaWNoIGlzIGxpa2VseSBub3QgYSBnb29kIGlkZWEu
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5z
aXplKCkpOwogICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZh
bHNlKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxC
dWZmZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShp
LCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1
c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlv
QnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0
cHV0UG9zaXRpb24pOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBhdXRvIGRvUmVu
ZGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9CdXMgPSBX
VEZNb3ZlKGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZyYW1lc1Rv
UHJvY2Vzcywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb25dIHsK
KyAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1lc1RvUHJv
Y2Vzcywgb3V0cHV0UG9zaXRpb24pOworICAgIH07CisgICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCkgeworICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVuZGVyID0g
V1RGTW92ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb1JlbmRlcigpOworICAgICAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAg
IH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmgKaW5kZXggYWRhNmZlZWZmMzc0MzBmM2M0ZGQzN2YxM2M3ZTNhNGU3NjZhMzlk
YS4uOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3ZTE4ZWNmYjVhYTVmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogICAgIHVzaW5nIEF1ZGlvSU9DYWxsYmFj
ayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMg
UmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWdu
ZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIH5SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkoKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIC8vIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24KLSAgICB2b2lkIHN0YXJ0KCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+
JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lzUGxheWlu
ZzsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nh
bXBsZVJhdGU7IH0KQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2Zy
YW1lc1BlckJ1ZmZlciB7IDAgfTsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ciBtX2Rlc3RpbmF0aW9uSUQ7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07CisgICAg
RnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJl
YWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDJlODYx
YTFlNGUzMWUxNDc4MmEyYjllODMxOThjMTY3YTU5NDYxMTMuLmQ1YWVmMTUzNGFkMjM2NWQyMTM3
YTE3YjZmNmQ0NGUxZWY4NTE5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIFdlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0ZWd5KCkg
PSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLXN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwKK1JlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0
cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAppbmRleCA4
MTdjNGMyOWIxNzMyZjQ1ZjkwZTIxNTVkNjVjZWU4NDdjMTdiZWUyLi42YjdiOWNlNjAzYTg3Mzll
NzFkOTA0NzVmY2M3ODcyNjhmNmQ5ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtMzksNyArMzksNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihX
ZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAgIFJlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCiAg
ICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLm1tCmluZGV4IGZhZjkzYjczYTJiMDE0MTAzODA1YTVjYzZiY2E3YjY1M2E2
NTI3YjcuLmViYmIzYmVhNmVkYmI0N2JjYjRlMmQwYjI5N2ZjZDA1ZWJhNjMyOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTY5LDcgKzY5LDcgQEAgUGFzdGVib2FyZFN0cmF0
ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBj
bGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJp
dmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlv
bj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAppbmRleCBkZjRhMWY3ODUwNGRiZTIzMGE5NzdlOTdmZDI1OWQyNGU0ZjkyMDMxLi5lMDM0
MjNkNzUzY2IxOTgwZWUzZWI4ODkyZmEyODUxZWU0OTYyNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFzcyBXZWJN
ZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0ZToKICNp
ZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRl
QXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcm
IGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJh
Y2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4u
cHkKaW5kZXggMzFhZWMzODJlN2JhM2EzYWJmOWYyNzEyMmZiODRlMjA1Nzg4MDdjNC4uMWQwOTEz
YjRlZjA1OWE0ZTFlNzkwNmM1ZWI0OWRlZGI2NjQ2NDU5NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3Rz
OgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAgcmV0dXJuIGV4
aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYs
IGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVu
dGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlKToKKyAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3ko
c2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBw
bGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2Zp
bGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBh
aW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKICAgICAg
ICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJlY3RvcnkpOgogICAgICAg
ICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X2ZpbGUpCkBA
IC05OCw2ICs5OCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAnLS1z
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgc2VydmljZXdvcmtlcmds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0td29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZScsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAor
ICAgICAgICAgICAgICAgJy0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
JywgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAg
ICAgICAnLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgdGVzdGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tdmFsaWRhdGVBZ2FpbnN0UGFy
c2VyJ10KIApAQCAtMjAxLDYgKzIwMiw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
IHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsJwogICAgICAgICBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUgPSAnUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJworICAg
ICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB0ZXN0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0
b3JzLmlkbCcKIAogICAgICAgICB3b3JrX2RpcmVjdG9yeSA9IHRlbXBmaWxlLm1rZHRlbXAoKQpA
QCAtMjEzLDkgKzIxNSwxMCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzZXJ2aWNl
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19k
aXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwg
c2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAg
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtf
ZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rvcnks
IHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHBhaW50
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtf
ZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rvcnks
IHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAg
YXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4o
d29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVj
dG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAg
ICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29y
a19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9y
eSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKIAotICAgICAgICBpZiBz
ZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3Vw
cGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVu
Y3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAg
ICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3Rv
cnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9k
ZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICAgICAg
cHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBhIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUu
JykKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUod29ya19kaXJlY3RvcnkpCiAgICAgICAgICAg
ICByZXR1cm4gLTEKQEAgLTIzNSw2ICsyMzgsOCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAg
ICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2Vs
Zi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1
dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFt
ZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCisgICAgICAgICAg
ICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3Rv
cnksIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAg
ICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3Jr
X2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKIAo=
</data>
<flag name="commit-queue"
          id="426049"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410183</attachid>
            <date>2020-09-30 17:49:00 -0700</date>
            <delta_ts>2020-09-30 18:29:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930174859.patch</filename>
            <type>text/plain</type>
            <size>163508</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5iZGNmNzc5YmRiZmQwODY5NjYwMzI1MmJmZTcxMjIzYWI3NjQyMzExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODEsMTAgKzgxLDExIEBAIEFzeW5jQ2xpcGJvYXJk
QVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NPQSkiIDogdHJ1ZQogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotQXVkaW9Xb3JrbGV0RW5hYmxlZDoKK0F1ZGlvV29ya2xldEFQSUVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25k
aXRpb246IEVOQUJMRShXRUJfQVVESU8pCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdh
Y3k6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDRkZmNlYmYyNDQ1YTZjNGE1ZTk2MzQ4NWU0NjM1
NTQ2Zjc2Y2Y5MGUuLjE5NDM4MDIzYzQzNThiMDYwNjEwM2M2NWM0N2Q1ODlmN2VlNWMzNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NzQsNiArNDc0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtMTc2Niw2ICsx
NzY3LDcgQEAgc2V0KERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS8KIHNldChTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFBBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Q
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIAogc2V0KFdlYkNv
cmVfSU5URVJGQUNFX0xJQlJBUklFUyBXZWJDb3JlKQogc2V0KFdlYkNvcmVfSU5URVJGQUNFX0lO
Q0xVREVfRElSRUNUT1JJRVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElS
fSkKQEAgLTE5NTEsNyArMTk1Myw4IEBAIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5n
cwogICAgICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSAke1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KLSAgICAgICAgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtQ
QUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCisgICAgICAgIC0tcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7QVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9KQogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVBFTkRFTkNJRVMgV2ViQ29yZUJpbmRpbmdz
KQogCiBpZiAoRU5BQkxFX1dFQklOU1BFQ1RPUlVJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNGZjMDU0NGY5Y2Q5NzYxYWUwMWRjYjY1
MTQ4YzM0YTM4MmJlYWJkOS4uYThkY2Y5Njk4MmE0MDgyOTk3NDU4MjU4MzRiNzE2MGI0NWQyN2Y1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0zMzAsNiArMzMwLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCA0NDIxNjA0NjdkZTE2NWU3NWQ1NDQ5NzUwZmRkYTEzY2Vk
Yzc0NjgwLi4zNjc5NWVhNDEzMzhlZGRhODRhZDI4MzRmNjg4ZGVkMzIwNGRlMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMSw0
ICsxLDUgQEAKICMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgZ2VuZXJhdGUteGNmaWxl
bGlzdHMgc2NyaXB0LgorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
Q1NTUHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaApAQCAtMjA3LDYgKzIwOCw4IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291
cmNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1RyYWNrTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvV29ya2xldE5vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRiMWQ2YWE0NjRhM2EyMDE0ODU5NjFl
ZjcxMTUzNjE1N2UzZjBhYjYuLjJjMWMxMDg5YWQ1YWI2Yjc1OWY1MDZkYzFhZTkwM2NmZjIwNjA2
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDA3LDYgKzQwNyw3IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvVGltZXN0YW1wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIFwKQEAgLTE3NDgsNiArMTc0OSw3IEBAIERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1CiBTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUgPSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorQVVESU9XT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwKIElETF9GSUxFU19UTVAgPSBpZGxfZmlsZXMudG1wCiBJRExfQVRUUklCVVRFU19GSUxF
ID0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgogCkBAIC0x
NzY4LDEzICsxNzcwLDE0IEBAIElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklD
RVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKLSAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKQorICAgICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKQogIwogSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQo
SURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNf
VE1QKSAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNv
U3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93
Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChX
T1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQUExFTUVOVEFMX01BS0VG
SUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTKSBMQU5H
VUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNfVE1QKSAtLWlk
bEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNvU3Vic3BhY2Vz
SGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93Q29uc3RydWN0
b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1k
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJQ0FURURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBz
ICQoU1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCiAJJChERUxFVEUpICQoSURMX0ZJTEVTX1RN
UCkKIAogSlMlLmNwcCBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykgJChJRExf
QVRUUklCVVRFU19GSUxFKSAkKElETF9JTlRFUk1FRElBVEVfRklMRVMpICQoRkVBVFVSRV9BTkRf
UExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCmluZGV4IGJlZDdiNDBkYmMzMmRiMzIyZTc5
YjY4NGRhNTBiMGQ5NzZhZWYwYzYuLjJhMmMxMTc1NjhjNGI0Mzc3YjQ2MTQ1MjYxZTM0Y2ExNWEz
M2M5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
RElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9QXVkaW9Xb3JrbGV0QVBJLAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIFNraXBWVGFi
bGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKaW5kZXggYTk5NGEyNGZhMWYzODFkMjkw
Y2RjOTA2Y2NiMWU4NzEwY2NlYmVmYy4uZmNiOTlhNjc2ZmJhNTI3ZmNjNTE0Y2QxODUyYzI2YzQ1
ZTBiMWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmNwcApAQCAtMzEsMTUgKzMxLDM0IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNp
bmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKIAorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEF1ZGlvV29ya2xldD4gQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoKQorUmVmPEF1ZGlvV29ya2xldD4gQXVkaW9Xb3JrbGV0OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8gd29ya2xldCA9IGFkb3B0UmVmKCpu
ZXcgQXVkaW9Xb3JrbGV0KGRvY3VtZW50KSk7CisgICAgd29ya2xldC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHdvcmtsZXQ7Cit9CisKK0F1ZGlvV29ya2xldDo6QXVkaW9Xb3JrbGV0
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IFdvcmtsZXQoZG9jdW1lbnQpCit7Cit9CisKK1Zl
Y3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBBdWRpb1dvcmtsZXQ6OmNyZWF0ZUds
b2JhbFNjb3BlcygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0KTsK
KyAgICAvLyBXZWJBdWRpbyB1c2VzIGEgc2luZ2xlIGdsb2JhbCBzY29wZS4KKyAgICByZXR1cm4g
eyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlKCp0aGlzKSB9OwogfQogCi1BdWRp
b1dvcmtsZXQ6OkF1ZGlvV29ya2xldCgpCitBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogQXVk
aW9Xb3JrbGV0Ojpwcm94eSgpIGNvbnN0CiB7CisgICAgYXV0byYgcHJveGllcyA9IHRoaXMtPnBy
b3hpZXMoKTsKKyAgICBpZiAocHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBkb3duY2FzdDxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eT4ocHJv
eGllcy5maXJzdCgpLnB0cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKaW5kZXggNTUxMTVl
MzEyYTk2ZGZjOGI1M2RiYzcwYjA5NDA1NmIxMzI5NjZkYi4uODAzZmJiNzRkOWQ2MDNlMzY0ZGQ0
M2Y2OGJmODU0OTE0MTI5ODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldC5oCkBAIC0zMywxMiArMzMsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1dvcmtsZXQgOiBwdWJsaWMgV29ya2xldCB7CitjbGFzcyBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0IGZpbmFsIDogcHVi
bGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0PiBjcmVh
dGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKERvY3VtZW50Jik7CisK
KyAgICBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogcHJveHkoKSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICBBdWRpb1dvcmtsZXQoKTsKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXQoRG9jdW1l
bnQmKTsKKworICAgIC8vIFdvcmtsZXQuCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuaWRsCmluZGV4IGJjNWVhOGYwZDVmN2ZiYjRkMzZlYzg2MjhhOTNiYTE0NGFlZGZhZDcu
LjU2MDNmNzhkZjZhYjMyYTFlY2VjOGY4NmYwMjhjMTkzMDFiMmM0ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKQEAgLTI4LDcgKzI4
LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0
aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldEFQSSwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICBTZWN1
cmVDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZjI2MGUyNmZkMTg4
OGE2ZTRjOTVlNzg5NDU2NmQ5OTdmNjM3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVh
ZC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKTsKKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
KEF1ZGlvV29ya2xldFRocmVhZCYgdGhyZWFkLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKKyAgICA6IFdvcmtsZXRHbG9iYWxTY29wZShwYXJhbWV0ZXJzLndpbmRvd1VSTCkK
KyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
K30KKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6On5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgp
ID0gZGVmYXVsdDsKKworVGhyZWFkKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6dW5kZXJseWlu
Z1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLT50aHJlYWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTViZmE0Y2VjNmFmZGJmMmYzMmNlMzk2YTdkYmQy
MzNhZjkxNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworc3RydWN0
IFdvcmtsZXRQYXJhbWV0ZXJzOworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+IGNyZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3Qg
V29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSh0aHJlYWQsIHBhcmFtZXRlcnMpKTsK
KyAgICB9CisgICAgfkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7CisKKyAgICBUaHJlYWQqIHVu
ZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVy
cyYpOworCisgICAgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVhZD4gbV90aHJlYWQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpCitzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1
cm4gaXM8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxX
ZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmlzQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUoKTsgfQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1N2JjYzBhOWY1
ZTcwNDliNTY4OGU3NWI2NzgzNWVkOGQyYzM2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFeHBvc2VkPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldEFQSSwKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCisgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0LAorICAgIEltcGxpY2l0VGhpcywKKyAgICBJc0ltbXV0YWJsZVByb3Rv
dHlwZUV4b3RpY09iamVjdCwKKyAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdE9u
UHJvdG90eXBlLAorICAgIEdsb2JhbD0oV29ya2xldCxBdWRpb1dvcmtsZXQpLAorXSBpbnRlcmZh
Y2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIC8v
IEltcGxlbWVudCBBUEkuCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzIxNjE0YmJjYTJiYzlhMDVmYjBlOTRiYWYxY2ViYjY4YzkzYWEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCisjaW5jbHVk
ZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICA6IG1fd29ya2xl
dChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fd29ya2xldFRocmVhZChBdWRpb1dvcmts
ZXRUaHJlYWQ6OmNyZWF0ZSh7IHdvcmtsZXQuZG9jdW1lbnQoKS0+dXJsKCkgfSkpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fd29ya2xldFRocmVhZC0+c3RhcnQoKTsK
K30KKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6On5BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpID0gZGVmYXVsdDsKKworYm9vbCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9z
dFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBtX3dvcmtsZXRUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE3YWRmNGYy
ODM4MDNhYjk0NTEwM2Q5ZjMyYTZmODc5MWJhMTQ5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0OworY2xhc3MgQXVkaW9Xb3Jr
bGV0VGhyZWFkOworCitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSA6IHB1YmxpYyBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eT4gY3JlYXRlKEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
KHdvcmtsZXQpKTsKKyAgICB9CisKKyAgICB+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsK
KworICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gdGhlIG1haW4gdGhyZWFkIHRvIHBvc3Qg
dGFzayBiYWNrIHRvIHRoZSB3b3JrbGV0IHRocmVhZC4KKyAgICBib29sIHBvc3RUYXNrRm9yTW9k
ZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29u
c3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmKTsKKworICAgIGJvb2wgaXNBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAg
IFdlYWtQdHI8QXVkaW9Xb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgUmVmPEF1ZGlvV29ya2xldFRo
cmVhZD4gbV93b3JrbGV0VGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5KQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9iYWxT
Y29wZVByb3h5JiBwcm94eSkgeyByZXR1cm4gcHJveHkuaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNTYyNzE0ODY2M2YwNDIxOGIxZTU1MDUxNzViMDQ5
NWE1NDY5MTIwNi4uNmIwYzFhMDZlNjAxNWEzZDdiMmNiNmZmYWM3NDkyYmY3OTQ0ZDVjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8s
Ci0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1BdWRpb1dvcmtsZXRBUEksCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRv
SlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAppbmRleCBh
OWUxOWI2OTVlMDZmMjMxMzg4ZTczNWIyYjYwNTI5NzlmMTFmOTA1Li4zMzljNzZmNGIxOGMwOWYy
NTQyYzdhOTYxZTgxNjBhN2I0Mjg5ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbApAQCAtMjgs
NyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRC
eVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0
QVBJLAogXSBkaWN0aW9uYXJ5IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zIDogQXVkaW9Ob2RlT3B0
aW9ucyB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0cyA9IDE7CiAgICAgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5Nzdm
Mzk5NDRmMmJlY2I3NjhjODk1NmNhZjVlZWEyYWQ4OGEwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKQEAg
LTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmgiCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGFyYW1ldGVycyBXb3Jr
bGV0UGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV29ya2xl
dFBhcmFtZXRlcnMgeworICAgICAgICB3aW5kb3dVUkwuaXNvbGF0ZWRDb3B5KCkKKyAgICB9Owor
fQorCitBdWRpb1dvcmtsZXRUaHJlYWQ6OkF1ZGlvV29ya2xldFRocmVhZChjb25zdCBXb3JrbGV0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzLmlz
b2xhdGVkQ29weSgpKQoreworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6c3RhcnQoKQor
eworICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrKTsKKworICAgIFJlZjxUaHJlYWQ+IHRocmVhZCA9IFRocmVhZDo6Y3JlYXRl
KCJXZWJDb3JlOiBBdWRpb1dvcmtsZXQiLCBbdGhpc10geworICAgICAgICB3b3JrbGV0VGhyZWFk
KCk7CisgICAgfSwgVGhyZWFkVHlwZTo6QXVkaW8pOworICAgIC8vIEZvcmNlIHRoZSBUaHJlYWQg
b2JqZWN0IHRvIGJlIGluaXRpYWxpemVkIGZ1bGx5IGJlZm9yZSBzdG9yaW5nIGl0IHRvIG1fdGhy
ZWFkIChhbmQgYmVjb21pbmcgdmlzaWJsZSB0byBvdGhlciB0aHJlYWRzKS4KKyAgICBXVEY6OnN0
b3JlU3RvcmVGZW5jZSgpOworICAgIG1fdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpOworfQorCit2
b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6d29ya2xldFRocmVhZCgpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyNpZiBVU0UoR0xJQikKKyAgICBHUmVmUHRy
PEdNYWluQ29udGV4dD4gbWFpbkNvbnRleHQgPSBhZG9wdEdSZWYoZ19tYWluX2NvbnRleHRfbmV3
KCkpOworICAgIGdfbWFpbl9jb250ZXh0X3B1c2hfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlcjsKKyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3Jl
YXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrKTsKKyAgICAgICAgbV93b3JrbGV0R2xvYmFs
U2NvcGUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3JlYXRlKCp0aGlzLCBtX3BhcmFtZXRl
cnMpOworCisgICAgICAgIHNjcmlwdENvbnRyb2xsZXIgPSBtX3dvcmtsZXRHbG9iYWxTY29wZS0+
c2NyaXB0KCk7CisKKyAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVkKCkpIHsKKyAgICAg
ICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRoZSB0aHJlYWQgaGFk
IGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4aXN0IHlldCwKKyAg
ICAgICAgICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpIGNvdWxkbid0IGJlIGNhbGxlZCBmcm9tIHN0
b3AoKS4KKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNjaGVkdWxlRXhlY3V0aW9uVGVy
bWluYXRpb24oKTsKKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmZvcmJpZEV4ZWN1dGlv
bigpOworICAgICAgICB9CisgICAgfQorCisgICAgcnVuRXZlbnRMb29wKCk7CisKKyNpZiBVU0Uo
R0xJQikKKyAgICBnX21haW5fY29udGV4dF9wb3BfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBSZWZQdHI8VGhyZWFkPiBwcm90ZWN0b3IgPSBtX3RocmVh
ZDsKKworICAgIEFTU0VSVChtX3dvcmtsZXRHbG9iYWxTY29wZS0+aGFzT25lUmVmKCkpOworCisg
ICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiB3b3JrbGV0R2xvYmFsU2NvcGVUb0Rl
bGV0ZTsKKyAgICB7CisgICAgICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRv
IGVuc3VyZSB0aGF0IHdlIGRvbid0IGNoYW5nZSBtX3dvcmtlckdsb2JhbFNjb3BlCisgICAgICAg
IC8vIHdoaWxlIFdvcmtlclRocmVhZDo6c3RvcCBpcyBhY2Nlc3NpbmcgaXQuCisgICAgICAgIGF1
dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVM
b2NrKTsKKworICAgICAgICAvLyBEZWxheSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFdvcmtlckds
b2JhbFNjb3BlIGNvbnRleHQgdW50aWwgYWZ0ZXIgd2UndmUgdW5sb2NrZWQgdGhlCisgICAgICAg
IC8vIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrZXJHbG9iYWxTY29wZU11dGV4LiBUaGlzIGlzIG5l
ZWRlZCBiZWNhdXNlIGRlc3RydWN0aW5nIHRoZQorICAgICAgICAvLyBjb250ZXh0IHdpbGwgdHJp
Z2dlciB0aGUgbWFpbiB0aHJlYWQgdG8gcmFjZSBhZ2FpbnN0IHVzIHRvIGRlbGV0ZSB0aGUgV29y
a2VyVGhyZWFkCisgICAgICAgIC8vIG9iamVjdCwgYW5kIHRoZSBXb3JrZXJUaHJlYWQgb2JqZWN0
IG93bnMgdGhlIG11dGV4IHdlIG5lZWQgdG8gdW5sb2NrIGFmdGVyIHRoaXMuCisgICAgICAgIHdv
cmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlID0gV1RGTW92ZShtX3dvcmtsZXRHbG9iYWxTY29wZSk7
CisgICAgfQorCisgICAgLy8gVGhlIGJlbG93IGFzc2lnbm1lbnQgd2lsbCBkZXN0cm95IHRoZSBj
b250ZXh0LCB3aGljaCB3aWxsIGluIHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KKyAgICAv
LyBXZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVj
YXVzZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhl
bS4KKyAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IG51bGxwdHI7CisKKyAgICAvLyBT
ZW5kIHRoZSBsYXN0IFdvcmtlclRocmVhZCBSZWYgdG8gYmUgRGVyZWYnZWQgb24gdGhlIG1haW4g
dGhyZWFkLgorICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpXSB7IH0pOworCisgICAgLy8gVGhlIHRocmVhZCBvYmplY3QgbWF5IGJlIGFs
cmVhZHkgZGVzdHJveWVkIGZyb20gbm90aWZpY2F0aW9uIG5vdywgZG9uJ3QgdHJ5IHRvIGFjY2Vz
cyAidGhpcyIuCisgICAgcHJvdGVjdG9yLT5kZXRhY2goKTsKK30KKwordm9pZCBBdWRpb1dvcmts
ZXRUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCit7CisgICAgLy8gRG9lcyBub3QgcmV0dXJuIHVudGls
IHRlcm1pbmF0ZWQuCisgICAgbV9ydW5Mb29wLnJ1bihtX3dvcmtsZXRHbG9iYWxTY29wZS5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRUaHJlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTI3MDJjOThmZGY4M2Y5NzUyOTQ0YTQ1MGM5MzRh
Yzg1Mzc5NDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTsKKworc3RydWN0IFdv
cmtsZXRQYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBVUkwgd2luZG93VVJMOworCisgICAgV29y
a2xldFBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCitjbGFzcyBBdWRpb1dv
cmtsZXRUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Xb3JrbGV0VGhy
ZWFkPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IGNyZWF0
ZShjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldFRocmVhZChwYXJhbWV0ZXJzKSk7CisgICAg
fQorCisgICAgdm9pZCBzdGFydCgpOworCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCgpIHsg
cmV0dXJuIG1fcnVuTG9vcDsgfQorICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
bV90aHJlYWQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRU
aHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKKworICAgIHZvaWQgcnVuRXZlbnRMb29w
KCk7CisgICAgdm9pZCB3b3JrbGV0VGhyZWFkKCk7CisKKyAgICBSZWZQdHI8VGhyZWFkPiBtX3Ro
cmVhZDsKKyAgICBXb3JrZXJSdW5Mb29wIG1fcnVuTG9vcDsKKyAgICBXb3JrbGV0UGFyYW1ldGVy
cyBtX3BhcmFtZXRlcnM7CisgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiBtX3dv
cmtsZXRHbG9iYWxTY29wZTsKKyAgICBMb2NrIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDAyYjVmYTA0ZmVkZDkzZWU5YzNhMmQ5NTMw
MzA3ZDIxMDk0NGYzZTYuLmNkYzAzY2ZhYzRkODc3YTcwZWM1M2VhYjhiYTkzY2MzNzU2MDg3ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zCiAg
ICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcih1
bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRpb1dvcmts
ZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKGRvY3Vt
ZW50KSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUo
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKIHsK
ICAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRl
ciBwYWdlIG5hdmlnYXRlLgpAQCAtMTYxLDcgKzE2MSw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJh
c2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5u
ZWxzCiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRp
Zmllcih1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRp
b1dvcmtsZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRl
KGRvY3VtZW50KSkKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRp
YVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKSwgKnRoaXMpKQogICAgICwgbV9yZW5kZXJUYXJnZXQo
V1RGTW92ZShyZW5kZXJUYXJnZXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKaW5kZXggZGY5MzVhNDA4ZjRjYjA0M2E3ZDg5
N2RiNjM3M2I0MTQ3N2Q4ZDc0OC4uYmNkNjgzMDAxOWM2ODYxOTcxMWY3MWZhYWUxZDg1YTZiOTg0
ZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaWRsCkBAIC00Miw3ICs0Miw3IEBACiAgICAgLy8gQWxsIHBhbm5pbmcgaXMg
cmVsYXRpdmUgdG8gdGhpcyBsaXN0ZW5lci4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9M
aXN0ZW5lciBsaXN0ZW5lcjsKIAotICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFi
bGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xl
dCBhdWRpb1dvcmtsZXQ7CisgICAgW1NhbWVPYmplY3QsIFNlY3VyZUNvbnRleHQsIEVuYWJsZWRB
dFJ1bnRpbWU9QXVkaW9Xb3JrbGV0QVBJXSByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Xb3JrbGV0
IGF1ZGlvV29ya2xldDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0NvbnRleHRTdGF0
ZSBzdGF0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhdGVjaGFuZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNzUxZGU5MThjZTFkYzM2YTFjNzllOTUwM2M5
MjhmNGY4OWYwOTZiYy4uYWUzNGZmYmEyM2NkYTE2Y2Q5YWE3NDYwZTdhODcyZTc5ODIxM2U4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsMTAgKzMwLDEzIEBACiAKICNp
bmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC05
OSwxOCArMTAyLDMwIEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJ
bnB1dChjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCiAgICAgICAgICAgICAvLyBSZS1jcmVh
dGUgZGVzdGluYXRpb24uCiAgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAg
ICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwotICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKKyAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5k
ZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAorRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpCit7CisgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94
eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAgICAgIHJldHVybiBb
d29ya2xldFByb3h5ID0gbWFrZVJlZigqd29ya2xldFByb3h5KV0oRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKSB7CisgICAgICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRv
V29ya2xldEdsb2JhbFNjb3BlKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKTsK
KyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9
OworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKIHsKICAgICBBU1NFUlQoaXNJ
bml0aWFsaXplZCgpKTsKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydCgpOworICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRG
dW5jdGlvbigpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTgsNyArMTMzLDcgQEAgdm9p
ZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmIChpc0lu
aXRpYWxpemVkKCkpCi0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAg
ICBjb250ZXh0KCkucG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwogfQogCkBAIC0xNjMsNyAr
MTc4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbEMKICAgICAgICAgLy8gUmUtY3JlYXRlIGRl
c3RpbmF0aW9uLgogICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAgICAgIGNyZWF0
ZURlc3RpbmF0aW9uKCk7Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAg
IG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsK
ICAgICB9CiAKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXgg
ZWRlMTUzM2MxNjQ4MjljZjFlMjNiYTkzYzI5YTg4NjM0MjAzZTRkMi4uN2Q2NWUyNWViNTU0MWE5
Nzc2ZDUwMDZlMTcyZDIwMDViNDNkZThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4pOwogICAgIHZvaWQg
Y3JlYXRlRGVzdGluYXRpb24oKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4gZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCk7CisKICAgICB2b2lkIGluaXRp
YWxpemUoKSBmaW5hbDsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7CkBAIC02MSw3ICs2
Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50KCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFN0cmluZyBtX2lucHV0RGV2aWNlSWQ7CiAgICAgdW5z
aWduZWQgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiAgICAgZmxvYXQgbV9zYW1wbGVS
YXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGZhYTMzNjUyZWRi
Mzc2M2IzOWMxZjZiYjQ3ZjZiYjI0ZmEwM2M0MjAuLjUzYjU1NDEzZTkyNjFiNzcwZWY3YWMzYmFh
ZDZkODZlMGM4MjllY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMxLDcg
KzMxLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQu
aCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5o
IgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiSFJU
RkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05Niw5ICs5OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIG1fc3RhcnRl
ZFJlbmRlcmluZyA9IHRydWU7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CiAKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRpYWxpemUgaGVyZT8K
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhy
ZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5kZXJUaHJlYWQgPSBU
aHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIG9mZlRocmVhZFJl
bmRlcmluZyA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBvZmZsaW5lUmVuZGVyKCk7CiAgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lID0g
bV9jdXJyZW50U2FtcGxlRnJhbWUsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXSB7CiAgICAgICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSBmYWxzZTsKQEAgLTExNCw3
ICsxMTUsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpzdGFydFJlbmRlcmluZygpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwotICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICB9OworCisgICAg
aWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgp
KSB7CisgICAgICAgIHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFs
U2NvcGUoW29mZlRocmVhZFJlbmRlcmluZyA9IFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKV0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgb2ZmVGhyZWFk
UmVuZGVyaW5nKCk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgbGltaXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBh
dWRpby4KKyAgICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRl
cmVyIiwgV1RGTW92ZShvZmZUaHJlYWRSZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NWNjMTA4NTVkOGJhZmVkN2E0
NTNjNGJlOWY0ZDkyZGUyNDUzN2JiLi5jN2VjZmRkMTU1YzUyODBkNTg1NGJmYjUyYmViZWEwMjg0
YWRiN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA1LDcgKzIwNSwxMCBAQCBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9u
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcAogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJu
ZWwuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC0yNTc5LDYg
KzI1ODIsNyBAQCB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKIHdvcmtsZXRz
L1dvcmtsZXQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKIHdvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
CiB3b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCiB4bWwvRE9NUGFyc2VyLmNwcApAQCAtMjY4MCw2ICsyNjg0LDcgQEAgSlNB
dWRpb1RpbWVzdGFtcC5jcHAKIEpTQXVkaW9UcmFjay5jcHAKIEpTQXVkaW9UcmFja0xpc3QuY3Bw
CiBKU0F1ZGlvV29ya2xldC5jcHAKK0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiBKU0F1
ZGlvV29ya2xldE5vZGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmNwcAogSlNBdXRo
ZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1MmRiM2MyMTBjZWFj
ZTUyOTkxODY4ZWNiMGNiNzM2MzVjZmVkMC4uYjBjMjk3MGY1YWNkZjllMjMzMGViZjhkN2E5NDAx
MmQ1ZTYwMzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjQ1MSw2ICsyNDUxLDEwIEBACiAJCTgzM0I5RTMyMUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkYxRjUwOEQ4MDAwRTBFNDI4IC8q
IEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM0MUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkExRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5
c3RlbUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJDMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnku
aCAqLzsgfTsKKwkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFz
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JE
ODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi87IH07CisJCTgz
M0JEODE4MjUyNEQ0RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi87IH07CisJCTgzM0JEODFE
MjUyNEQ1MzAwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTkyNTI0RDUxQjAwNkU3
MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzM0JEODFFMjUyNEQ1
MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIz
IC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggKi87IH07CiAJCTgzM0QxQzc2MjREOEQ1
NEYwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0QxQzczMjREOEQ1MzMwMEU4MTNE
RiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLzsgfTsKIAkJODM0MDdGQzExRThE
OUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM0M0Q5ODQyNEQwREVFOTAwOUFCRDQ5IC8qIFdlYktpdE9z
Y2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQzRDk4MTI0RDBERUE5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCAq
LzsgfTsKQEAgLTI1MDgsNiArMjUxMiw3IEBACiAJCTgzOEY4NkRCMUY1MDlFN0IwMEU4Q0ZDNSAv
KiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAwRThDRkM1IC8qIEZpbGVTeXN0ZW1F
bnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1MEI2M0UwMEU5RDg2QiAvKiBET01G
aWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oICovOyB9OwogCQk4
Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4
NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07CisJCTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyog
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovOyB9OwogCQk4MzlBMkYyRTFFMjA0
QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJH
TFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUIxQTBD
MEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJCTgzOUJFNkQ1MjRGNTg3
NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCAq
LzsgfTsKQEAgLTI1MzUsNiArMjU0MCw3IEBACiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAv
KiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyog
SlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRw
UmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAv
KiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgfTsK
KwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFF
NDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgfTsK
IAkJODNEQjlFMEYyNERBMTk0OTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBDMjREQTE4QjUw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi87IH07CiAJCTgzREI5RTEwMjREQTE5NTcw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwRTI0REExOEI2MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oICovOyB9OwogCQk4M0UzNTlBMjFCQjEwMzFEMDAyQ0VCOTggLyogSlNI
VE1MVGltZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oICov
OyB9OwpAQCAtMjU0NCw2ICsyNTUwLDcgQEAKIAkJODNGQjMzNzExRjUwOEE1NDAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkQxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3MzFGNTA4QTU4MDA5ODZFNTQgLyogRmls
ZVN5c3RlbUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4M0ZCMzM2RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggKi87IH07
CiAJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2QzFGNTA4
QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4M0ZDOTk0QjI1
MjU1N0VBMDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyog
QXVkaW9Xb3JrbGV0VGhyZWFkLmggKi87IH07CiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07CkBAIC0xMDU3OCw2
ICsxMDU4NSwxMyBAQAogCQk4MzNCOUUyRDFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVt
RmlsZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmls
ZVN5c3RlbUZpbGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5
RTJFMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE1MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3Jr
bGV0UGVuZGluZ1Rhc2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzM0JEODFBMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFCMjUyNEQ1
MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcyQjMgLyogQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFCQ0MgLyogSlNQZXJmb3JtYW5jZU9ic2Vy
dmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVy
Zm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzM0QxQzczMjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0QxQzc1MjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNCw2ICsxMDcxOCw3IEBA
CiAJCTgzOTk0NzA5MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRDFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01G
aWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
RmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTk0NzBFMUY1
MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJG
MkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3Rh
dGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVU
cmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQw
MDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDc1Miw2ICsxMDc2Nyw3IEBACiAJCTgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRDUxMUYzMjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVzaFB1bGxGSUZPLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1
c2hQdWxsRklGTy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoUHVsbEZJ
Rk8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzREI5RTBBMjREQTE4QjQwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJU
eXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0RCOUUwRDI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDc5MSw2ICsxMDgwNyw5IEBACiAJCTgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAv
KiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzRkIzMzZFMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1FbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
U3lzdGVtRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNGQzk5NDcyNTI1
NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5
OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
RkM5OTRBMjUyNTU3RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TW9kaWZpZXJJbml0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBV
SUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUV2ZW50SW5p
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNTFEQTlGMTY2MDAzNzIz
N0MgLyogVUlFdmVudEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVJRXZlbnRJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTYxLDggQEAK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4
QjAwOEI1QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDgg
LyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFG
MjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAq
LywKQEAgLTE3NTU0LDggKzE3NTc1LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUg
LyogSW5saW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxp
bmVMaW5lQm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5l
TGluZUJveC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250
ZW50QnJlYWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGlu
ZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElu
bGluZUxpbmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyog
SW5saW5lTGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyog
SW5saW5lTGluZUdlb21ldHJ5LmggKi8sCkBAIC0xODcyMCw2ICsxODczOSw4IEBACiAJCQkJMkU0
MzQ2M0QwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJ
CQkyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywK
IAkJCQkyRTQzNDYzRjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywK
KwkJCQk4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCAqLywKKwkJCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oICovLAogCQkJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBX
b3JrZXJSZXBvcnRpbmdQcm94eS5oICovLAogCQkJCTJFNDM0NjQwMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJSdW5Mb29wLmNwcCAqLywKIAkJCQkyRTQzNDY0MTBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyUnVuTG9vcC5oICovLApAQCAtMTk3MzgsOCArMTk3NTksMTEgQEAKIAkJCQk0QkRFQTMy
NjIxN0ZFMkZBMDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKIAkJCQk0QkRF
QTMyNDIxN0ZFMkU0MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNEJE
RUEzMkEyMTgwMTA3MjAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8sCisJCQkJ
ODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8s
CiAJCQkJODNBQ0QwMTAyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmggKi8sCiAJ
CQkJODNBQ0QwMTIyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmlkbCAqLywKKwkJ
CQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgKi8s
CisJCQkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAq
LywKIAkJCQk0QkRFQTMyOTIxODAwNDBDMDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwICovLAogCQkJCTRCREVBMzI3MjE4MDAzRjcwMDUyREZDRCAvKiBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oICovLAogCQkJKTsKQEAgLTI5ODU4LDExICsyOTg4MiwxOCBAQAogCQkJCTgz
Qjk4NzA2MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuY3BwICovLAogCQkJCTgzQjk4
NzAxMjUyMjVGMEMwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCAqLywKIAkJCQk4M0I5ODZGRDI1
MjI1RjBCMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmlkbCAqLywKKwkJCQk4MzNCRDgxQTI1MjRE
NTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovLAorCQkJCTgzM0JE
ODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovLAorCQkJ
CTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwg
Ki8sCisJCQkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLywKKwkJCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQk4M0I5ODcwMzI1MjI1RjBDMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5jcHAgKi8sCiAJCQkJODNCOTg3MDcyNTIyNUYwRTAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGUuaCAqLywKIAkJCQk4M0I5ODcwNDI1MjI1RjBEMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwgKi8sCiAJCQkJODNCOTg3MDAyNTIyNUYwQjAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmggKi8sCiAJCQkJODNCOTg3MDUyNTIyNUYwRDAwQTkz
OUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCAqLywKKwkJCQk4M0ZDOTk0QTI1MjU1
N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLywKKwkJCQk4M0ZDOTk0OTI1
MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8sCiAJCQkJODMxOThGQkIy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJF
MjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzA0NjcsOCAr
MzA0OTgsMTEgQEAKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYgLyogQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOEIxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQjI1
MjI1RjdEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNC
RDgxRDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MDkyNTIyNUY3MjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4NzBBMjUyMjVG
NzYwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0
NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzE3NzIsNiArMzE4MDYsNyBAQAogCQkJCUNEMDYzRjgzMUUyM0ZBODkwMDgxMkJF
MyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFNTBBMTU1
QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA1OTI2NDFF
MjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCNTdDQjUyRTE4MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVu
dEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0IC8qIElu
bGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlB
QiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc4MCw3
ICszMTgxNSw2IEBACiAJCQkJQkNFNzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8qIElubGluZUl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8q
IElubGluZUxpbmVCb3guaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVC
NDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RjkxNDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU5NSw2ICszNDYyOSw4IEBACiAJCQkJMUFCQzcxMDkx
NzBFNUUxQjAwRjlBOUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhC
NEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2Vy
UmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0
NERFMDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0
NjA5LDcgKzM0NjQ1LDkgQEAKIAkJCQk0QkRFQTMyMDIxN0VDNTVGMDA1MkRGQ0QgLyogV29ya2xl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEI3RjlDNTIyMTgzQjVFNTAwMUNFQkEwIC8qIFdvcmts
ZXRDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyNTIxN0ZFMkU0MDA1
MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgx
ODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQUNEMDEzMjUyMjlFMTAwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5k
aW5nVGFza3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREVBMzI4MjE4MDAzRjcwMDUyREZDRCAv
KiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjQw
OTlFNjQ5MjAwNTZFNTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFt
QnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYyYjBkNmQ1NGE0ZjAwMDJkZWU0YmQyZGZj
N2VjNmVkMTM3ZDg0NjguLmIzYThkNWIxM2M0NTExY2Y3ODQyNTc1OWQ2MDUxNDgxMTE0OTBjMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEF1ZGlv
TGlzdGVuZXIpIFwKICAgICBtYWNybyhBdWRpb1BhcmFtTWFwKSBcCiAgICAgbWFjcm8oQXVkaW9X
b3JrbGV0KSBcCisgICAgbWFjcm8oQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAgICBtYWNy
byhBdWRpb1dvcmtsZXROb2RlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5j
cHAKaW5kZXggMzhkZjY3NzUyZTkwYTZhMmUwMTc0Y2ZhZmJjNGY4NzFlYTgxYzE0YS4uZGE0NmU4
NWMzNDAzYTJlODA3NjM4MjM4MjVkYjg3NDE5ZDc4MWRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkRPTUdDT3V0cHV0Q29uc3RyYWludC5oIgogI2luY2x1ZGUgIkRPTUlz
b1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rv
ckJhc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNjgsOSArNjksMTIgQEAgSlNW
TUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KCkpCiAjZW5kaWYKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKICNp
ZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU+KCkpCi0gICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEds
b2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2Nv
cGU+KCkpCisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKKyAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6Y3JlYXRlPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxp
emF0aW9uR2xvYmFsT2JqZWN0KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNJREJTZXJp
YWxpemF0aW9uR2xvYmFsT2JqZWN0PigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgzYjgyMzRjMzM1ZGVkMTQ1MGQxODEzZmU4
NDI5N2E5NzU4Mzg5NTEuLmI4NDQwZTg3NzBlNDcyOTFmN2VlMjA2MzE5OWVhMDVjM2M0YmIwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKQEAgLTk5LDkgKzk5LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZv
ckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRy
PEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3Bl
OwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6
OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxU
eXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGQwYTU0N2Fj
NTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2MDkuLmUzOTAxODBmNTcxZjllMWUzNWJjOTIz
YjFkNzcxZDRiOTVjZWRhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpA
QCAtNDQsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29u
c29sZUNsaWVudDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCi1jbGFzcyBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyIHsKK2NsYXNzIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKQEAgLTY3
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpL2lzRXhlY3V0aW9u
Rm9yYmlkZGVuKCkgdG8gZ3VhcmQgYWdhaW5zdCByZWVudHJ5IGludG8gSlMuCiAgICAgLy8gQ2Fu
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCiAgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCk7Ci0gICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBD
YWxsZWQgb24gV29ya2VyIHRocmVhZCB3aGVuIEpTIGV4aXRzIHdpdGggdGVybWluYXRpb24gZXhj
ZXB0aW9uIGNhdXNlZCBieSBmb3JiaWRFeGVjdXRpb24oKSByZXF1ZXN0LAogICAgIC8vIG9yIGJ5
IFdvcmtlciB0aHJlYWQgdGVybWluYXRpb24gY29kZSB0byBwcmV2ZW50IGZ1dHVyZSBlbnRyeSBp
bnRvIEpTLgpAQCAtNzksMTEgKzgwLDExIEBAIHB1YmxpYzoKIAogICAgIEpTQzo6Vk0mIHZtKCkg
eyByZXR1cm4gKm1fdm07IH0KICAgICAKLSAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCk7Ci0g
ICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpOworICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3Mo
KSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CiAKLSAgICB2b2lk
IGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZp
Y2F0aW9uQ2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgdm9pZCBh
ZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOwog
CiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CiAgICAgdm9pZCBkZXRh
Y2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDEwZjNlNjY4NjY1NDVhNWE2MGE5
ZWU1YTlmODY3NGFlM2MyODQ5MzIuLjU4ZmQxYTdhMjZmZGQxZGFjNGRiMmI3MGIxYzU0NTM3NWJj
ZDRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC03NzUsNyArNzc1LDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVj
dFByb3RvdHlwZQogCiAgICAgIyBGb3Igd29ya2VycywgdGhlIGdsb2JhbCBvYmplY3QgaXMgYSBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50
eXBlLT5uYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSI7Ci0gICAgIyBGb3Igd29ya2xldHMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgIyBGb3Ig
d29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUg
b3IgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJXb3JrbGV0R2xvYmFsU2NvcGUiOwogCiAgICAgcmV0dXJuIElzRE9N
R2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCBiZWUwZmM1MDY5MTlmY2NmZDE3NWY2
OWNjNTIzYzU3NTZiYzA4YTg4Li5mNGM4NGJjODhjNDExNDVkZDE2ZWQzODNkNGQzOWM0MmNjNWQ2
OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbApAQCAtNDcsNiArNDcsNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CitteSAkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOwogbXkgJGlkbEF0dHJpYnV0
ZXNGaWxlOwpAQCAtNjksNiArNzAsNyBAQCBHZXRPcHRpb25zKCdkZWZpbmVzPXMnID0+IFwkZGVm
aW5lcywKICAgICAgICAgICAgJ3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGU9cycgPT4gXCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAg
ICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdwYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+
IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3N1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcywKICAgICAg
ICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmlidXRlc0ZpbGUsCkBAIC04
Myw2ICs4NSw3IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGCiBkaWUoJ011c3Qgc3BlY2lmeSBh
biBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicp
IHVubGVzcyBkZWZpbmVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1hdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRw
dXQgZmlsZSB1c2luZyAtLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNz
IGRlZmluZWQoJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpIHx8ICFkZWZpbmVkKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogZGllKCdNdXN0IHNwZWNpZnkgdGhlIGZpbGUgbGlzdGlu
ZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykgdW5sZXNzIGRlZmluZWQoJGlk
bEZpbGVOYW1lc0xpc3QpOwogZGllKCdNdXN0IHNwZWNpZnkgSURMIGF0dHJpYnV0ZXMgZmlsZSB1
c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRpZGxBdHRyaWJ1dGVz
RmlsZSk7CkBAIC05NSw2ICs5OCw3IEBAICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlCiAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOworJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYgZGVmaW5lZCgkc3VwcGxlbWVudGFsTWFrZWZp
bGVEZXBzKTsKIAogbXkgQGlkbEZpbGVOYW1lczsKQEAgLTEzNSw2ICsxMzksNyBAQCBteSAkZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0g
IiI7CiAKIG15ICRpc29TdWJzcGFjZXNIZWFkZXJDb2RlID0gPDxFTkQ7CkBAIC0yMzcsNiArMjQy
LDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNo
KSB7CiAgICAgICAgICAgICAgICAgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
Lj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBl
cSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAgICAgICRwYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiQXVkaW9Xb3JrbGV0IikgeworICAgICAgICAgICAgICAg
ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNv
ZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENv
bnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjU0LDYg
KzI2MSw3IEBAIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldvcmtsZXRHbG9iYWxTY29wZSIsICR3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIiwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRl
c3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZGFlMTEwN2QzMzRiYzhmNDNkZjJmNGY3
ZTg0YTk4M2MzNWQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0wLDAgKzEsMiBAQAorcGFydGlhbCBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFi
ZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBA
IC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBi
dWlsZCBzY3JpcHRzIHRoYXQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5o
IGFuZAorICAgIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUg
Y3JlYXRlZCBmb3IgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQg
cHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUg
SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApAQCAtMCwwICsxLDUgQEAKKy8qCisg
ICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisg
ICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFp
bnRXb3JrbGV0LmNwcAppbmRleCAxMzZlNGYxNGVjZmU1ZTRiOWY5Yzk1MjAyNzQzOWE0YTMxZDQ5
NjQ1Li4yODVkNTZkMGM2ZTBlN2VhNTFlNmQ0NmM5YTNjMWY5MWE5N2YyZTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcApAQCAtNTYsMTEgKzU2LDE4IEBAIGNv
bnN0IGNoYXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVy
biAiRE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVs
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0
aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorLy8gRklYTUU6IEdl
dCByaWQgb2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUgc3RhbmRhcmQtY29tcGxpYW50
IFdvcmtsZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBhaW50V29ya2xldDo6YWRkTW9k
dWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJf
cyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
ZG93bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0byBtYXliZUNvbnRleHQgPSBQ
YWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRTb3VyY2VD
b2RlKG1vZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJM
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsK
QEAgLTcwLDkgKzc3LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xlCiAKICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CiAgICAgZm9y
IChhdXRvJiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9uTWFwKCkua2V5cygpKQotICAg
ICAgICBkb2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFr
ZVJlZihjb250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50LT5zZXRQYWludFdvcmtsZXRH
bG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CiAgICAgcHJv
bWlzZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+
PiBQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7CisgICAgLy8gRklYTUU6IEFk
ZCBpbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBiOWIxMzg1YmIwOGEzZjFjZWQ0
ZWIyYjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIyMDQ4MjIz
ZjJjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCkBAIC00MSwx
NSArNDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBjbGFzcyBQYWludFdvcmtsZXQg
ZmluYWwgOiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQYWludFdv
cmtsZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWlu
dFdvcmtsZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IFBhaW50V29y
a2xldChkb2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICAgICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNb2R1bGUoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmtsZXQuCisgICAgdm9pZCBhZGRN
b2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxT
Y29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAg
UGFpbnRXb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhaW50V29ya2xldChEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1bWVudCkKKyAgICB7IH0KIH07
CiAKIGNsYXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERP
TUNTU05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmFjZjNmMThjYWRj
Njg2YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMzZmIzMmMx
N2QwZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDM5LDcgKzg0Mzks
NyBAQCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50
OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5z
dXJlUGFpbnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRXb3JrbGV0KQotICAgICAgICBt
X3BhaW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGFpbnRX
b3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wYWlu
dFdvcmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKaW5kZXggMDZhM2VjOTA2NTU4MjZmYmNkOTFhODNiNjQxZTI3ZjU5ZTc1ZGU2MC4uMGNj
Y2MxMTgxNjNmOTRlNWVmMjU4NzAyZTIyOGIyMWQ5ZDYyZDVmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEyNyw2ICsxMjcsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgY3NzUGFpbnRpbmdBUElFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9D
U1NQYWludGluZ0FQSUVuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KyAgICB2b2lkIHNldEF1ZGlvV29ya2xldEFQSUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9h
dWRpb1dvcmtsZXRBUElFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBhdWRpb1dvcmts
ZXRBUElFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1dvcmtsZXRBUElFbmFibGVkOyB9
CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgdm9pZCBzZXRDU1NUeXBl
ZE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX0NTU1R5cGVkT01FbmFibGVkID0gaXNFbmFi
bGVkOyB9CiAgICAgYm9vbCBjc3NUeXBlZE9NRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NT
VHlwZWRPTUVuYWJsZWQ7IH0KQEAgLTMwMiw2ICszMDcsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGJvb2wgbV9DU1NQYWludGluZ0FQSUVuYWJsZWQgeyBm
YWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBib29sIG1fYXVkaW9X
b3JrbGV0QVBJRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfVFlQ
RURfT00pCiAgICAgYm9vbCBtX0NTU1R5cGVkT01FbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAppbmRleCA3OTBkYjRiN2U5NmZhOTZkZjg4ZmQ2NzhjYWUwYzcyZTUy
M2E4MTk5Li43Y2Q1ZGYxMGZmZDEwZmY3M2Q0OTNiZTFjMDlhODE5ZDI0NTI2NDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC0yNTksOCArMjU5LDYgQEAgcHJlZml4ZWRXZWJBdWRp
b0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiBtb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFi
bGVkOgogICBpbml0aWFsOiBmYWxzZQotYXVkaW9Xb3JrbGV0RW5hYmxlZDoKLSAgaW5pdGlhbDog
ZmFsc2UKIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIGZ1
bGxTY3JlZW5FbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVk
aWFTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCmlu
ZGV4IDQzZDU3NjUyOThjMDY3OTJjNmRkY2U4NWM0MmEwYTNmNTc1YTg3ODMuLjk4NTIwNWRhYmFh
YjhkYTM4NmY2NTY0ZDgwOTZmZDI4NjU1YzFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVN0cmF0ZWd5LmgKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IE5vd1BsYXlpbmdJbmZvOwog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CiAjaWYgRU5BQkxF
KFdFQl9BVURJTykKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAorICAgIHZpcnR1YWwgUmVmPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCiAgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYsIGNv
bnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSA9IDA7
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCBkZWI3NTdkYzQ1ZTU3ODU4NTIxN2Zk
M2JlYzA3MTJiNjQ0ZDc1Mzc0Li4xNjBjNjU3OGUxNWVkNWVhNzUyNWRjNzY4YmQ0ZWYzZmRjNzRm
NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3Rp
bmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25faAogCiAj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00MCwxNiArNDEsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogLy8gVGhlIGF1ZGlvIGhh
cmR3YXJlIHBlcmlvZGljYWxseSBjYWxscyB0aGUgQXVkaW9JT0NhbGxiYWNrIHJlbmRlcigpIG1l
dGhvZCBhc2tpbmcgaXQgdG8gcmVuZGVyL291dHB1dCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBv
ZiBhdWRpby4KIC8vIEl0IG9wdGlvbmFsbHkgd2lsbCBwYXNzIGluIGxvY2FsL2xpdmUgYXVkaW8g
aW5wdXQgd2hlbiBpdCBjYWxscyByZW5kZXIoKS4KIAotY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7
CitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1
ZGlvRGVzdGluYXRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICAvLyBQYXNzIGluIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBpZiBsaXZlL2xvY2Fs
IGF1ZGlvIGlucHV0IGlzIGRlc2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZpYyBkZXZpY2UgaWRl
bnRpZmljYXRpb24gaW5mb3JtYXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcyBjYW4g
YmUgcGFzc2VkIGluIHRoZSBpbnB1dERldmljZUlkLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFj
ayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0
ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBpc1BsYXlpbmcoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4
IDc0YWQ2MTZmYTllMjVkZWI5OTljOTZiNjY3ZWQxNDk0NzBiZjY4NzIuLmRhNGU0YjJjOGI2MDcz
NDgzZjlmYWRjNjdiYWZiZmZmODY4NWY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApA
QCAtNDEsNyArNDEsNyBAQCBjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2Nv
YU92ZXJyaWRlIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRy
OwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9u
OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWdu
ZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1dERl
dmljZUlkIGFzIGFwcHJvcHJpYXRlLgogCkBAIC01NSw3ICs1NSw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiBjYWxsCiAgICAgaWYgKEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUp
CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlKGNh
bGxiYWNrLCBzYW1wbGVSYXRlKTsKIAotICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlVW5pcXVl
PEF1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IHNhbXBsZVJhdGUpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdFJlZigqbmV3IEF1ZGlv
RGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxl
UmF0ZSkpOwogICAgIGRlc3RpbmF0aW9uLT5jb25maWd1cmUoKTsKICAgICByZXR1cm4gZGVzdGlu
YXRpb247CiB9CkBAIC0xMDMsOSArMTAzLDEwIEBAIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRpb25D
b2NvYTo6ZnJhbWVzUGVyQnVmZmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJCdXMtPmxl
bmd0aCgpOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9pZCBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6c3RhcnQiKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQg
PSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIE9TU3RhdHVzIHJlc3VsdCA9
IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAKICAgICBpZiAoIXJlc3VsdCkK
QEAgLTExNiw2ICsxMTcsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiB7
CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wIik7CiAgICAgT1NT
dGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIG1f
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiAKICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgc2V0SXNQbGF5aW5nKGZhbHNlKTsKQEAgLTEyMyw2ICsxMjUsNyBAQCB2b2lkIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpz
ZXRJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX2lzUGxheWluZ0xvY2spOwogICAgIGlmIChtX2lzUGxheWluZyA9PSBpc1BsYXlpbmcpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTczLDE4ICsxNzYsMzggQEAgT1NTdGF0dXMgQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUlu
dDMyIG4KIAogICAgIC8vIEFzc29jaWF0ZSB0aGUgZGVzdGluYXRpb24gZGF0YSBhcnJheSB3aXRo
IHRoZSBvdXRwdXQgYnVzIHRoZW4gZmlsbCB0aGUgRklGTy4KICAgICBhc3NpZ25BdWRpb0J1ZmZl
cnNUb0J1cyhidWZmZXJzLCBtX291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBudW1i
ZXJPZkZyYW1lcywgMCwgbnVtYmVyT2ZGcmFtZXMpOwotICAgIHNpemVfdCBmcmFtZXNUb1JlbmRl
ciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IHNpemVfdCBmcmFtZXNUb1JlbmRlcjsKIAorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2ZpZm9Mb2NrKTsKKyAgICAgICAgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8tPnB1
bGwobV9vdXRwdXRCdXMucHRyKCksIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICAvLyBX
aGVuIHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlv
V29ya2xldFRocmVhZC4KKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAg
ICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBmcmFtZXNUb1JlbmRlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0ZDo6
dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2lzUGxheWluZ0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2sp
OworICAgICAgICAgICAgaWYgKGxvY2sub3duc19sb2NrKCkgJiYgbV9pc1BsYXlpbmcpCisgICAg
ICAgICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7CisgICAg
ICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1l
c1RvUmVuZGVyKTsKKworICAgIHJldHVybiBub0VycjsKK30KKworLy8gVGhpcyBydW5zIG9uIHRo
ZSBBdWRpb1dvcmtsZXRUaHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwgb24gdGhl
IGF1ZGlvIGRldmljZSdzIHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgordm9pZCBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVu
ZGVyKQorewogICAgIGZvciAoc2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8
IGZyYW1lc1RvUmVuZGVyOyBwdXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKSB7CiAgICAgICAgIGlmIChtX3Jlc2FtcGxlcikKICAgICAgICAgICAgIG1fcmVz
YW1wbGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NhbGxiYWNr
LnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2ZpZm9Mb2NrKTsKICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0cigp
KTsKICAgICB9Ci0KLSAgICByZXR1cm4gbm9FcnI7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0
IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IDAwZGRhMmZiMmEzN2I4M2YxMGVm
YTUyNzFiMTc2OGE4MGI0ODExZWMuLjA4OTRkNjIxYTJmMTUzMjI1MTI3MzY1MGI2ZTVhM2QzZWM5
OTZmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEF1
ZGlvQnVzOwogY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOwogY2xhc3MgUHVzaFB1bGxGSUZP
OwogCi11c2luZyBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9IHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1w
bGVSYXRlKTsKK3VzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gUmVm
PEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUp
OwogCiAvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRlZmF1bHQgb3V0
cHV0IEF1ZGlvVW5pdAogY2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNvY29hIDogcHVibGljIEF1ZGlv
RGVzdGluYXRpb24sIHB1YmxpYyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKQEAgLTY1LDExICs2NSwx
NSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHNldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
bihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworCiBwcml2YXRlOgot
ICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7CiAKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCwgdW5zaWduZWQsIGZsb2F0KTsKKyAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQo
c2l6ZV90IGZyYW1lc1RvUmVuZGVyKTsKKworICAgIGZyaWVuZCBSZWY8QXVkaW9EZXN0aW5hdGlv
bj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOwogICAgIAogICAgIC8vIEF1ZGlvU291cmNl
UHJvdmlkZXIuCiAgICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKSBmaW5hbDsKQEAgLTkxLDExICs5NSwxNCBAQCBwcml2YXRlOgogICAgIC8vIFJl
c29sdmVzIHRoZSBidWZmZXIgc2l6ZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBXZWJBdWRpbyBlbmdp
bmUgYW5kCiAgICAgLy8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZyb20gdGhlIGFjdHVhbCBhdWRp
byBkZXZpY2UuCiAgICAgVW5pcXVlUmVmPFB1c2hQdWxsRklGTz4gbV9maWZvOworICAgIExvY2sg
bV9maWZvTG9jazsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+
IG1fcmVzYW1wbGVyOwogICAgIEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFRpbWVzdGFtcDsKIAog
ICAgIGZsb2F0IG1fY29udGV4dFNhbXBsZVJhdGU7CisKKyAgICBMb2NrIG1faXNQbGF5aW5nTG9j
azsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCA4ZmRlYjZhMjQyNDg0OWNhYzE3YmJlOTBh
YWU3MTJhODlhMjRkMTAwLi5jMDVhZTZiZTYyOWRkYjNkZjY3MjI4MjkxMTFjZThiNjQwMGVlNjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIHN0YXRpYyB2b2lkIGF1dG9BdWRpb1NpbmtDaGlsZEFkZGVkQ2FsbGJhY2soR3N0Q2hp
bGRQcm94eSosIEdPYmplY3QqIG9iamVjdCwgZ2NoCiAgICAgICAgIGdfb2JqZWN0X3NldChHU1Rf
QVVESU9fQkFTRV9TSU5LKG9iamVjdCksICJidWZmZXItdGltZSIsIHN0YXRpY19jYXN0PGdpbnQ2
ND4oMTAwMDAwKSwgbnVsbHB0cik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywg
Y29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGlu
YXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVk
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklY
TUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTYwLDcg
KzYwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRp
b246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAobnVtYmVyT2ZPdXRwdXRD
aGFubmVscyAhPSAyKQogICAgICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoJXUsICV1LCAlZikgLSB1bmhhbmRsZWQgb3V0cHV0IGNoYW5uZWxzIiwgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIAotICAgIHJl
dHVybiBtYWtlVW5pcXVlPEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI+KGNhbGxiYWNrLCBzYW1w
bGVSYXRlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyKGNhbGxiYWNrLCBzYW1wbGVSYXRlKSk7CiB9CiAKIGZsb2F0IEF1ZGlvRGVzdGluYXRpb246
OmhhcmR3YXJlU2FtcGxlUmF0ZSgpCkBAIC0xNjUsNyArMTY1LDcgQEAgZ2Jvb2xlYW4gQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQog
ICAgIHJldHVybiBUUlVFOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0
YXJ0KCkKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKQogewogICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2YWls
YWJsZSk7CiAgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IGNmZTY4OTIwOGQwOTY4YTUxYThiYjFkMWU4N2Y2ZTE5
ZDBmMjMxNjYuLmQ1NTEwNGM4OGNjYmNkZmZmZjk3YzRlN2E0OTQ5ODZmOTk2YmY4ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtMzQsNyArMzQsNyBAQCBwdWJs
aWM6CiAgICAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smLCBmbG9h
dCBzYW1wbGVSYXRlKTsKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKCk7
CiAKLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUGxheWluZygpIG92
ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCA5
ZGFhN2QwMTQxZDgxMDRlNGY1YzRjMjY0OGJjOGM2YmU1MjZjMGM4Li41YTEyY2RlNGZjZGZjNTdm
YWQ0MmI3ZDllOGZlNzMyMDQzNTA5ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTQ1LDgg
KzQ1LDkgQEAgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6TW9ja0F1ZGlvRGVzdGluYXRpb25D
b2NvYShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogCiBNb2NrQXVkaW9EZXN0aW5hdGlvbkNv
Y29hOjp+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpID0gZGVmYXVsdDsKIAotdm9pZCBNb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9u
Q29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRj
aFRvUmVuZGVyVGhyZWFkKQogeworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1v
dmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhT
ZWNvbmRzIHsgbV9udW1iZXJPZkZyYW1lc1RvUHJvY2VzcyAvIHNhbXBsZVJhdGUoKSB9KTsKICAg
ICBzZXRJc1BsYXlpbmcodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGQ0ZWFlODMzNDM1
YzBhNjA0NTVlZDBiOTY5MjU2OGM4ZWM2M2YzNmQuLmE4ZDI4YzRlZDFiYmVmZmQzMzA5NDUwZGFh
ZjMyOWViYTI1MzRjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC0zOCwxMiArMzgsMTYgQEAgY2xh
c3MgQXVkaW9JT0NhbGxiYWNrOwogY2xhc3MgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSBmaW5h
bCA6IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5h
dGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUp
IHsgcmV0dXJuIG1ha2VVbmlxdWU8TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ss
IHNhbXBsZVJhdGUpOyB9CisgICAgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUo
QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJh
Y2ssIHNhbXBsZVJhdGUpKTsKKyAgICB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBNb2NrQXVkaW9E
ZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfk1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoKTsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdGFydChGdW5jdGlv
bjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZp
bmFsOwogCiAgICAgdm9pZCB0aWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCmluZGV4IGIyZjMzMTJjZjRiMDQ2MWI4N2ZhYWFjMzljZDQyYTA2M2U1
OGFjNzMuLjFmZTkzOTg3ZWY5NjFmZGZiZTM4ZjQ3Y2E2NzFhZjVmZGE5OGQ5ZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01NDQsNCArNTQ0
LDkgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2VyR2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkg
Y29uc3QKICAgICByZXR1cm4gbV9yZWZlcnJlclBvbGljeTsKIH0KIAorVGhyZWFkKiBXb3JrZXJH
bG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhy
ZWFkLnRocmVhZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYmQ5Y2YxNDBkZDUyZmI4NDk4Yjlm
YTQxMDYwYzkzYWJmYTY4Mzg1ZS4uOTBkZjNiNmFmM2Q2M2VjNjFhZWM5YTEyM2MwODc3ZTc5ZTM0
YjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVk
ZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAj
aW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtl
ck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCkBAIC01OSw3ICs2MCw3IEBAIG5hbWVzcGFj
ZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OwogfQogCi1jbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVi
bGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFz
ZTY0VXRpbGl0aWVzIHsKK2NsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50
ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFs
U2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0
aWxpdGllcywgcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKFdvcmtlckdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5Xb3JrZXJHbG9iYWxTY29wZSgpOwpAQCAtODUsMTMgKzg2LDE1IEBAIHB1YmxpYzoKICAgICBX
b3JrZXJTV0NsaWVudENvbm5lY3Rpb24mIHN3Q2xpZW50Q29ubmVjdGlvbigpOwogI2VuZGlmCiAK
LSAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5n
ZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0
dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgdm9pZCBjbGVhclNjcmlwdCgpIHsgbV9zY3JpcHQg
PSBudWxscHRyOyB9CiAKICAgICBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JD
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlcjsgfQogCiAg
ICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZDsgfQogCisg
ICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKICAgICB1c2luZyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHk7CiAKICAgICB2b2lkIHBv
c3RUYXNrKFRhc2smJikgZmluYWw7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0
aHJlYWQgYXN5bmNocm9ub3VzbHkuCkBAIC0xMTksNyArMTIyLDcgQEAgcHVibGljOgogICAgIHVz
aW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAotICAg
IGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4gbV9jbG9zaW5nOyB9CisgICAgYm9vbCBpc0Nsb3Np
bmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nsb3Npbmc7IH0KIAogICAgIHZvaWQgYWRkQ29u
c29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYp
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0OGUwODQ4YmUzNTIyYjZhZDljMzI4NTMzOTc0
NmM3YzM5NzQyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRocmVhZDsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6
IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgV1RG
OjpUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29s
IGlzQ2xvc2luZygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdCgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY5YmY4M2U5MzBkZDE2NWQ4YTMzMDQ3MDUyYWQ1
NWQyMmZhZmE3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcigpID0gZGVmYXVs
dDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
VGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRp
b25DYWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNh
dGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7
CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0ID0gMDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwCmluZGV4IDY2ZWNkNTM2ZjgxM2QwMjljNDk3ZjFhZWE3ZjIxOWVkZmM3NWIz
NzUuLmJiNjFmYzVmMmE5N2RiODRiMTEzYmUyMjNjN2E3YWRjNzE5YjQ5NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1
ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKICNpbmNs
dWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNp
bmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclRo
cmVhZC5oIgogCiAjaWYgVVNFKEdMSUIpCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKICAg
ICBJc0ZvckRlYnVnZ2luZyBtX2lzRm9yRGVidWdnaW5nIHsgSXNGb3JEZWJ1Z2dpbmc6Ok5vIH07
CiB9OwogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxTY29wZSogY29udGV4
dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBj
b250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJ
c0ZvckRlYnVnZ2luZzo6Tm8pOwogICAgIE1vZGVQcmVkaWNhdGUgbW9kZVByZWRpY2F0ZShkZWZh
dWx0TW9kZSgpKTsKQEAgLTE0MywxMyArMTQzLDEzIEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cnVu
KFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQogICAgIHJ1bkNsZWFudXBUYXNrcyhjb250ZXh0
KTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRlYnVn
Z2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUmIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29w
U2V0dXA6OklzRm9yRGVidWdnaW5nOjpZZXMpOwogICAgIHJldHVybiBydW5Jbk1vZGUoJmNvbnRl
eHQsIE1vZGVQcmVkaWNhdGUgeyBkZWJ1Z2dlck1vZGUoKSB9LCBXYWl0Rm9yTWVzc2FnZSk7CiB9
CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtl
ckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRN
b2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbW9kZSwgV2Fp
dE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKG1vZGUgIT0gZGVidWdnZXJNb2RlKCkpOwog
ICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2lu
Zzo6Tm8pOwpAQCAtMTU4LDEwICsxNTgsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3Jr
ZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxv
b3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgTW9kZVByZWRp
Y2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBj
b250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRNb2Rl
KQogewogICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCku
dGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5k
ZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAKICAgICBKU0M6OkpTUnVu
TG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIHRpbWVyQWRkZWRUYXNrID0gV1RG
OjpjcmVhdGVTaGFyZWRUYXNrPEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9u
VHlwZT4oW3RoaXNdIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcg
aGVyZSwgd2UganVzdCB3YW50IHRvIGxvb3AgYXJvdW5kIHJ1bkluTW9kZQpAQCAtMTg2LDEzICsx
ODYsMTMgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUo
V29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICBpZiAod2FpdE1vZGUgPT0gV2Fp
dEZvck1lc3NhZ2UgJiYgcHJlZGljYXRlLmlzRGVmYXVsdE1vZGUoKSAmJiBtX3NoYXJlZFRpbWVy
LT5pc0FjdGl2ZSgpKQogICAgICAgICB0aW1lb3V0RGVsYXkgPSBzdGQ6Om1pbih0aW1lb3V0RGVs
YXksIG1fc2hhcmVkVGltZXItPmZpcmVUaW1lRGVsYXkoKSk7CiAKLSAgICBpZiAoV29ya2VyU2Ny
aXB0Q29udHJvbGxlciogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0
byogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5yZWxlYXNl
SGVhcEFjY2VzcygpOwogICAgICAgICBzY3JpcHQtPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKHRp
bWVyQWRkZWRUYXNrKTsKICAgICB9CiAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7
CiAgICAgYXV0byB0YXNrID0gbV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2VGaWx0ZXJlZFdp
dGhUaW1lb3V0KHJlc3VsdCwgcHJlZGljYXRlLCB0aW1lb3V0RGVsYXkpOwotICAgIGlmIChXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlm
IChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgewogICAgICAgICBzY3JpcHQtPmFj
cXVpcmVIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNjcmlwdC0+cmVtb3ZlVGltZXJTZXROb3RpZmlj
YXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KQEAgLTIyMywxMCArMjIzLDEwIEBAIE1lc3Nh
Z2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNj
b3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBXb3JrZXJS
dW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lk
IFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQt
PnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNv
bnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAgIEFT
U0VSVChtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewpAQCAt
MjYyLDcgKzI2Miw3IEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdERlYnVnZ2VyVGFzayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKICAgICBwb3N0VGFza0Zvck1vZGUoV1RG
TW92ZSh0YXNrKSwgZGVidWdnZXJNb2RlKCkpOwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OlRh
c2s6OnBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJS
dW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29u
dGV4dCkKIHsKICAgICBpZiAoKCFjb250ZXh0LT5pc0Nsb3NpbmcoKSAmJiBjb250ZXh0LT5zY3Jp
cHQoKSAmJiAhY29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgfHwg
bV90YXNrLmlzQ2xlYW51cFRhc2soKSkKICAgICAgICAgbV90YXNrLnBlcmZvcm1UYXNrKCpjb250
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKaW5kZXggYThjOWRlYmQ4
MGQ4MDk5NTRhN2E5ZDY5MGY3NzQwNmQyNTI4MjY2OC4uZWUyNmIzN2YyOTljYTY5OWMwNGMwYjFj
NzQ0MTUwNDgwODcxNTdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgK
QEAgLTM4LDcgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE1vZGVQ
cmVkaWNhdGU7Ci0gICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CisgICAgY2xhc3MgV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgY2xhc3MgV29ya2VyU2hhcmVkVGltZXI7CiAKICAg
ICBjbGFzcyBXb3JrZXJSdW5Mb29wIHsKQEAgLTQ3LDEzICs0NywxMyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIH5Xb3JrZXJSdW5Mb29wKCk7CiAgICAgICAgIAogICAgICAgICAvLyBC
bG9ja2luZyBjYWxsLiBXYWl0cyBmb3IgdGFza3MgYW5kIHRpbWVycywgaW52b2tlcyB0aGUgY2Fs
bGJhY2tzLgotICAgICAgICB2b2lkIHJ1bihXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2
b2lkIHJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGVudW0gV2Fp
dE1vZGUgeyBXYWl0Rm9yTWVzc2FnZSwgRG9udFdhaXRGb3JNZXNzYWdlIH07CiAKICAgICAgICAg
Ly8gV2FpdHMgZm9yIGEgc2luZ2xlIHRhc2sgYW5kIHJldHVybnMuCi0gICAgICAgIE1lc3NhZ2VR
dWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5n
JiBtb2RlLCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKLSAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYpOworICAgICAg
ICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7Cisg
ICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUmKTsKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgICAg
ICBib29sIHRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQo
KTsgfQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KIAogICAgICAgICBw
cml2YXRlOgotICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJHbG9iYWxTY29wZSop
OworICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSopOwogCiAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIG1fdGFzazsK
ICAgICAgICAgICAgIFN0cmluZyBtX21vZGU7CkBAIC04MywxMSArODMsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3BT
ZXR1cDsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyR2xv
YmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOworICAgICAgICBNZXNz
YWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSos
IGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0TW9kZSk7CiAKICAgICAgICAgLy8gUnVucyBhbnkg
Y2xlYW4gdXAgdGFza3MgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSBxdWV1ZSBhbmQgcmV0dXJu
cy4KICAgICAgICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgY29udGV4
dCBpcyBjbG9zZWQgb3IgbG9vcCBoYXMgYmVlbiB0ZXJtaW5hdGVkLgotICAgICAgICB2b2lkIHJ1
bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bkNsZWFu
dXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGJvb2wgaXNC
ZWluZ0RlYnVnZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z0NvdW50ID49IDE7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAppbmRleCAzZDZlMGI3YWYwMWUyMTg1ZTFjOWZmOWRi
MDdmZmQzMGVkZGQyMTc4Li4zOTA4YmRmM2EyOTZjODFiNmY0YmE4ZThlMDhlM2ZjNTgyZWU1ZTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcApAQCAtMjgsMjcgKzI4LDc2IEBACiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKLSNp
bmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisj
aW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5o
IgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgiCisjaW5jbHVkZSAiV29ya2xl
dFBlbmRpbmdUYXNrcy5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXQpOwogCi1SZWY8V29ya2xldD4gV29y
a2xldDo6Y3JlYXRlKCkKK1dvcmtsZXQ6OldvcmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
IDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXb3JrbGV0KCkpOwogfQogCi1Xb3JrbGV0OjpXb3JrbGV0KCkKK1dvcmtsZXQ6On5Xb3JrbGV0
KCkgPSBkZWZhdWx0OworCitEb2N1bWVudCogV29ya2xldDo6ZG9jdW1lbnQoKQoreworICAgIHJl
dHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKwor
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dvcmtsZXRzLTEvI2RvbS13b3JrbGV0LWFkZG1vZHVs
ZQordm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkxTdHJpbmcs
IFdvcmtsZXRPcHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBVUkwgbW9kdWxlVVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1v
ZHVsZVVSTFN0cmluZyk7CisgICAgaWYgKCFtb2R1bGVVUkwuaXNWYWxpZCgpKSB7CisgICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTW9kdWxlIFVSTCBpcyBp
bnZhbGlkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fcHJveGll
cy5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJveGllcy5hcHBlbmRWZWN0b3IoY3JlYXRlR2xvYmFs
U2NvcGVzKCkpOworCisgICAgYXV0byBwZW5kaW5nVGFza3MgPSBXb3JrbGV0UGVuZGluZ1Rhc2tz
OjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocHJvbWlzZSksIG1fcHJveGllcy5zaXplKCkpOworICAg
IG1fcGVuZGluZ1Rhc2tzU2V0LmFkZChwZW5kaW5nVGFza3MuY29weVJlZigpKTsKKworICAgIGZv
ciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMpIHsKKyAgICAgICAgcHJveHktPnBvc3RUYXNrRm9y
TW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtwZW5kaW5nVGFza3MgPSBwZW5kaW5nVGFza3MuY29w
eVJlZigpLCBtb2R1bGVVUkwgPSBtb2R1bGVVUkwuaXNvbGF0ZWRDb3B5KCksIGNyZWRlbnRpYWxz
ID0gb3B0aW9ucy5jcmVkZW50aWFscywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rp
dml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewor
ICAgICAgICAgICAgZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5mZXRjaEFu
ZEludm9rZVNjcmlwdChtb2R1bGVVUkwsIGNyZWRlbnRpYWxzLCBbcGVuZGluZ1Rhc2tzID0gV1RG
TW92ZShwZW5kaW5nVGFza3MpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rp
dml0eSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAg
ICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVuZGlu
Z1Rhc2tzKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbiksIHBlbmRpbmdB
Y3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRp
bmdUYXNrcy0+YWJvcnQoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+ZGVjcmVtZW50Q291
bnRlcigpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgIH0KK30KKwordm9pZCBXb3JrbGV0
OjpmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdUYXNrcyYgdGFza3MpCiB7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nVGFza3NTZXQuY29u
dGFpbnMoJnRhc2tzKSk7CisKKyAgICBtX3BlbmRpbmdUYXNrc1NldC5yZW1vdmUoJnRhc2tzKTsK
IH0KIAotdm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1v
ZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK2NvbnN0IGNoYXIqIFdvcmtsZXQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAog
ewotICAgIC8vIEZJWE1FOiBBZGQgcHJvcGVyIGltcGxlbWVudGF0aW9uLgotICAgIFVOVVNFRF9Q
QVJBTShtb2R1bGVVUkwpOwotICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIHJldHVybiAiV29y
a2xldCI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXQuaAppbmRleCBiMmJlZGM2NTg2NWI3NGY1Zjk5NTZmMDRjZmNjYzNmODM1MTlmMmUxLi40MTY4
Njc0YzczYjI5OTA5YmE2Mjk2MjU3MjFiMzgwNTNlMjI3YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldC5oCkBAIC0yNSwyNyArMjUsNDUgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0
T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHk7CitjbGFz
cyBXb3JrbGV0UGVuZGluZ1Rhc2tzOwogCi1zdHJ1Y3QgV29ya2xldE9wdGlvbnM7Ci0KLWNsYXNz
IFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBw
YWJsZSB7CitjbGFzcyBXb3JrbGV0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1Ymxp
YyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXb3JrbGV0PiwgcHVibGlj
IEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0KTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdvcmtsZXQ+IGNyZWF0ZSgpOwotICAgIHZpcnR1YWwg
fldvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+V29ya2xldCgpOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVS
TCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZp
cnR1YWwgdm9pZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRp
b25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgZmluaXNoUGVu
ZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFza3MmKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQo
KTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiYgcHJv
eGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJveGllczsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV29y
a2xldCgpOworICAgIGV4cGxpY2l0IFdvcmtsZXQoRG9jdW1lbnQmKTsKKworcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9i
YWxTY29wZXMoKSA9IDA7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgVmVjdG9yPFJlZjxX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IG1fcHJveGllczsKKyAgICBIYXNoU2V0PFJlZlB0cjxX
b3JrbGV0UGVuZGluZ1Rhc2tzPj4gbV9wZW5kaW5nVGFza3NTZXQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCmluZGV4IDBiNzc0YzI3
NGFhZjIwZTBjYzg4Mzc3MjcxYzcxNmEwMGZhZjllNjEuLjI5M2NmMDZlMTU1NmU5YjU3N2EyYTRk
MTk1ODhkMTY4MDZhYmVlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCkBAIC0y
NCw4ICsyNCwxMCBAQAogKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFeHBvc2Vk
PVdpbmRvdywKKyAgICBHbG9iYWw9V29ya2xldCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgog
XSBpbnRlcmZhY2UgV29ya2xldCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHVu
ZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmtsZXRP
cHRpb25zIG9wdGlvbnMpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3Ry
aW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggM2I3
NTgyYWZmY2QwNGIxNDYyOTBmM2E3NDY4NjczNGFjNjkwZmVmMi4uZmI4YmFhNWRlZmM5ZTg3NTNm
MGM0MmVlY2ZmOWI2NGVlMzIzNDAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BB
SU5USU5HX0FQSSkKLQogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIKQEAgLTM2
LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCi0jaW5jbHVkZSAiV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRp
b24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAgLTQ3LDEwICs0NCwyMiBAQCB1c2luZyBu
YW1lc3BhY2UgSW5zcGVjdG9yOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2xl
dEdsb2JhbFNjb3BlKTsKIAorV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiB3aW5kb3dVUkwpCisgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyPih0aGlzKSkKKyAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVVbmlxdWUoKSkKKyAgICAsIG1fdXJsKHdpbmRvd1VSTCkKK3sKKyAgICBhdXRvIGFk
ZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9iYWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CisgICAgQVNT
RVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdCk7CisKKyAgICBzZXRTZWN1cml0eU9yaWdp
blBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNvcHlSZWYo
KSkpOworfQorCiBXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVu
dCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29kZSkK
ICAgICA6IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQogICAgICwgbV9zY3JpcHQo
bWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4oV1RGTW92ZSh2bSksIHRoaXMpKQog
ICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwg
bV91cmwoY29kZS51cmwoKSkKICAgICAsIG1fY29kZShXVEZNb3ZlKGNvZGUpKQogewogICAgIGF1
dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKQEAg
LTYxLDcgKzcwLDcgQEAgV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2bSwgU2MKICAgICBBU1NFUlQoZG9jdW1l
bnQucGFnZSgpKTsKIAogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2lu
UG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7Ci0gICAgc2V0Q29udGVudFNl
Y3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBtX2Nv
ZGUudXJsKCkgfSwgKnRoaXMpKTsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVu
aXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IHRoaXMtPnVybCgpIH0sICp0aGlzKSk7
CiB9CiAKIFdvcmtsZXRHbG9iYWxTY29wZTo6fldvcmtsZXRHbG9iYWxTY29wZSgpCkBAIC0xMTMs
NyArMTIyLDggQEAgU3RyaW5nIFdvcmtsZXRHbG9iYWxTY29wZTo6dXNlckFnZW50KGNvbnN0IFVS
TCYgdXJsKSBjb25zdAogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZXZhbHVhdGUoKQogewot
ICAgIG1fc2NyaXB0LT5ldmFsdWF0ZShtX2NvZGUpOworICAgIGlmIChtX2NvZGUpCisgICAgICAg
IG1fc2NyaXB0LT5ldmFsdWF0ZSgqbV9jb2RlKTsKIH0KIAogYm9vbCBXb3JrbGV0R2xvYmFsU2Nv
cGU6OmlzSlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdApAQCAtMTM1LDcgKzE0NSw3IEBAIFVS
TCBXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBGb3Jj
ZVVURjgpIGNvbnN0CiB7CiAgICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFVS
TCgpOwotICAgIHJldHVybiBVUkwobV9jb2RlLnVybCgpLCB1cmwpOworICAgIHJldHVybiBVUkwo
dGhpcy0+dXJsKCksIHVybCk7CiB9CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpsb2dFeGNl
cHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4mJiBzdGFjaykKQEAgLTE3MSw1ICsxODEsMTEgQEAgUmVmZXJyZXJQb2xpY3kg
V29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJuIFJl
ZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOwogfQogCit2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6
ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBGSVhN
RTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9w
dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCAyNWQ1NDlhYzRhMGFhNmZmNzUy
ODc1NWQ3MDQ3YzgxNGVlN2RjNDA0Li45ODE0MTU5ZGUyYjUwM2E4MDhjODA4NzA0MmY2NzM1MzY3
YmZmMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
aApAQCAtMjYsMzAgKzI2LDMyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19Q
QUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RD
cmVkZW50aWFscy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCisj
aW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNz
YWdlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+Ci0jaW5jbHVk
ZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgV29ya2VyRXZl
bnRMb29wOwotY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CiAKIGVudW0gV29ya2xldEds
b2JhbFNjb3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgV29ya2xldEdsb2JhbFNjb3BlSWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5
cGU+OwogCi1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3Jr
bGV0R2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVi
bGljIFJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgogICAgIHZp
cnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtNTcsMTEgKzU5LDE2IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0ID0gSGFzaFNldDxjb25zdCBXb3JrbGV0
R2xvYmFsU2NvcGUqPjsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV29ya2xldEdsb2JhbFNj
b3Blc1NldCYgYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpOwogCisjaWYgRU5BQkxFKENTU19Q
QUlOVElOR19BUEkpCiAgICAgdmlydHVhbCBib29sIGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisjZW5kaWYKIAogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29w
KCkgZmluYWw7CiAKLSAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29kZS51cmwoKTsgfQorICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV91cmw7IH0KIAogICAgIHZvaWQgZXZhbHVhdGUoKTsKIApAQCAtNzAsNyArNzcsNyBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRl
cmVmOwogCi0gICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1f
c2NyaXB0LmdldCgpOyB9CisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZp
bmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsK
IApAQCAtNzksNiArODYsMTAgQEAgcHVibGljOgogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tl
dFByb3ZpZGVyKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogCisgICAgLy8gV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9pc0Nsb3Npbmc7IH0KKwogICAgIGJvb2wgaXNDb250ZXh0VGhyZWFk
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNTZWN1cmVDb250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtODYsNyArOTcsMTAgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogCisgICAg
dm9pZCBmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKTsK
KwogcHJvdGVjdGVkOgorICAgIFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VS
TCk7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiwgUmVmPEpTQzo6Vk0+JiYsIFNj
cmlwdFNvdXJjZUNvZGUmJik7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFdvcmtsZXRH
bG9iYWxTY29wZSYpID0gZGVsZXRlOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShXb3JrbGV0R2xv
YmFsU2NvcGUmJikgPSBkZWxldGU7CkBAIC0xMzYsOCArMTUwLDEwIEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFza0dyb3VwOwogCisgICAgVVJMIG1fdXJs
OwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fanNSdW50aW1lRmxhZ3M7Ci0gICAgU2NyaXB0U291
cmNlQ29kZSBtX2NvZGU7CisgICAgT3B0aW9uYWw8U2NyaXB0U291cmNlQ29kZT4gbV9jb2RlOwor
ICAgIGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpAQCAtMTQ1LDQgKzE2MSwzIEBAIHByaXZhdGU6CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZSkKIHN0YXRpYyBib29sIGlzVHlwZShj
b25zdCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBj
b250ZXh0LmlzV29ya2xldEdsb2JhbFNjb3BlKCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RU5EKCkKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5pZGwKaW5kZXggZDc1OWYwY2UxZDE2Zjg2OTE4NjAxMjc3NmYwZGIxNmI2MWJhYTQ3OC4u
YjYzMjI0ZGQxZWExOGMwM2MwNTMyM2I3M2VhNTg1YmUzOTJkY2MyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCkBAIC0yNiw3ICsyNiw2IEBA
CiBbCiAgICAgQ3VzdG9tUHJveHlUb0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9V29ya2xldCwKLSAg
ICBFbmFibGVkQXRSdW50aW1lPUNTU1BhaW50aW5nQVBJLAogICAgIENvbmRpdGlvbmFsPUNTU19Q
QUlOVElOR19BUEksCiAgICAgSlNMZWdhY3lQYXJlbnQ9SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNl
LAogICAgIEltcGxpY2l0VGhpcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGVQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhYzVkOTFjYzdkMDI0MjBiNWZhZmYy
MTkxYzBlZWY4ZmY5YTVkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgor
I2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V29ya2xldFBlbmRpbmdUYXNrczsKKworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHkgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eSgpID0gZGVmYXVsdDsK
KworICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCkgY29uc3QgPSAw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmZlNWQ3NjFhZjQ2ZjI2
MTQxMTc5MDRhYzEwNGMzMDQ5MTE0NWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV29ya2xldFBlbmRpbmdUYXNrczo6V29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0
JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBpbnQgY291bnRl
cikKKyAgICA6IG1fd29ya2xldChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fcHJvbWlz
ZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwgbV9jb3VudGVyKGNvdW50ZXIpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKK30KKwordm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjphYm9y
dChFeGNlcHRpb24mJiBleGNlcHRpb24pCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY291
bnRlciA9IC0xOworICAgIG1fcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAg
ICBpZiAobV93b3JrbGV0KQorICAgICAgICBtX3dvcmtsZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygq
dGhpcyk7Cit9CisKK3ZvaWQgV29ya2xldFBlbmRpbmdUYXNrczo6ZGVjcmVtZW50Q291bnRlcigp
Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0g
LTEpCisgICAgICAgIHJldHVybjsKKworICAgIC0tbV9jb3VudGVyOworICAgIGlmICghbV9jb3Vu
dGVyKSB7CisgICAgICAgIG1fcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIGlmIChtX3dvcmts
ZXQpCisgICAgICAgICAgICBtX3dvcmtsZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMzZDZiYmFiZTBlOWI5M2Uy
ODNhMzI4NjcxNWNhODlkYzI2YzA5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaApAQCAtMCwwICsxLDU1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBXb3JrbGV0OworCisvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29ya2xl
dHMvI3BlbmRpbmctdGFza3Mtc3RydWN0CitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtsZXRQZW5kaW5nVGFza3M+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdvcmtsZXRQZW5kaW5nVGFza3M+IGNyZWF0ZShXb3JrbGV0JiB3b3Jr
bGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtsZXRQZW5kaW5nVGFza3Mod29y
a2xldCwgV1RGTW92ZShwcm9taXNlKSwgY291bnRlcikpOworICAgIH0KKworICAgIHZvaWQgYWJv
cnQoRXhjZXB0aW9uJiYpOworICAgIHZvaWQgZGVjcmVtZW50Q291bnRlcigpOworCitwcml2YXRl
OgorICAgIFdvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xldCYsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmLCBpbnQgY291bnRlcik7CisKKyAgICBXZWFrUHRyPFdvcmtsZXQ+IG1fd29ya2xldDsK
KyAgICBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4gbV9wcm9taXNlOworICAgIGludCBtX2NvdW50
ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMjBhNmY4NTYxODU4
YWRmYmUyZTJiYzE4ZWJmNzE1MGI5N2FkMTRmOC4uMTdkZjVlMWYzY2YwNjU3MTRiY2VmNzVlZDg1
ZmNhZDUzOGY2ZTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjYsOCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAKLSNpZiBFTkFCTEUo
Q1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKQEAgLTU2LDYgKzU1LDExIEBAIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8Vk0+JiYgdm0sIFdvcmts
ZXRHbG9iYWxTY29wCiAgICAgSlNWTUNsaWVudERhdGE6OmluaXROb3JtYWxXb3JsZChtX3ZtLmdl
dCgpKTsKIH0KIAorV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyKFdvcmtsZXRHbG9iYWxTY29wZSogd29ya2xldEdsb2JhbFNjb3BlKQorICAgIDogV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIoVk06OmNyZWF0ZSgpLCB3b3JrbGV0R2xvYmFsU2NvcGUpCit7Cit9
CisKIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjp+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKQog
ewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKCkpOwpAQCAtMTQ1LDEwICsxNDksMTkgQEAgdm9p
ZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCiAgICAgaWYgKGlzRXhlY3V0
aW9uRm9yYmlkZGVuKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShDU1NfUEFJTlRJ
TkdfQVBJKQogICAgIGlmIChpczxQYWludFdvcmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xv
YmFsU2NvcGUpKSB7CiAgICAgICAgIGluaXRTY3JpcHRXaXRoU3ViY2xhc3M8SlNQYWludFdvcmts
ZXRHbG9iYWxTY29wZVByb3RvdHlwZSwgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZSwgUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU+KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjZW5kaWYKKwor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgaWYgKGlzPEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
PihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsKKyAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFz
czxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlUHJvdG90eXBlLCBKU0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLCBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4oKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CkBAIC0xOTYsNSArMjA5
LDYyIEBAIHZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnNldEV4Y2VwdGlvbihKU0M6OkV4
Y2VwdGlvbiogZXhjZXB0aW9uKQogICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlLCBleGNlcHRpb24pOwogfQogCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
OjpyZWxlYXNlSGVhcEFjY2VzcygpCit7CisgICAgbV92bS0+aGVhcC5yZWxlYXNlQWNjZXNzKCk7
Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFjcXVpcmVIZWFwQWNjZXNzKCkK
K3sKKyAgICBtX3ZtLT5oZWFwLmFjcXVpcmVBY2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6YWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1l
cjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nl
c3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGlt
ZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRpbWVyLT5hZGRUaW1lclNldE5vdGlm
aWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsKKworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFw
LmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVk
ZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdv
cmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnJlbW92
ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpT
UnVuTG9vcFRpbWVyKiB0aW1lcikgeworICAgICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB0aW1lci0+cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJh
Y2spOworICAgIH07CisKKyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlD
YWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxs
YmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkp
OworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCkKK3sKKyAgICBpZiAobV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKQorICAgICAg
ICByZXR1cm47CisKKyAgICB7CisgICAgICAgIC8vIFRoZSBtdXRleCBwcm92aWRlcyBhIG1lbW9y
eSBiYXJyaWVyIHRvIGVuc3VyZSB0aGF0IG9uY2UKKyAgICAgICAgLy8gdGVybWluYXRpb24gaXMg
c2NoZWR1bGVkLCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgd2lsbAorICAgICAgICAvLyBhY2N1
cmF0ZWx5IHJlZmxlY3QgdGhhdCBsZXhpY2FsR2xvYmFsT2JqZWN0IHdoZW4gY2FsbGVkIGZyb20g
YW5vdGhlciB0aHJlYWQuCisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVs
ZWRUZXJtaW5hdGlvbkxvY2spOworICAgICAgICBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24gPSB0
cnVlOworICAgIH0KKyAgICBtX3ZtLT5ub3RpZnlOZWVkVGVybWluYXRpb24oKTsKK30KKworYm9v
bCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0
Cit7CisgICAgLy8gU2VlIGNvbW1lbnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24g
cmVnYXJkaW5nIG11dGV4IHVzYWdlLgorICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hl
ZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgIHJldHVybiBtX2lzVGVybWluYXRpbmdFeGVjdXRp
b247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZTM2ZDJhMjQy
YmY1NDY0ZmEyN2NmM2RhOWFiNTI4NGYwMDA0ZDZlZS4uNmQ0M2NlNWY5ZmZkMmE3MGFmMGJmNmU1
YWVlNTRjZDhmYWM3MmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNSw4ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KKyNpbmNsdWRlICJXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpAQCAtNDYsOSArNDUsMTEgQEAgY2xhc3MgV29ya2xl
dENvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrbGV0
Q29uc29sZUNsaWVudDsKIAotY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXIgeworLy8gRklY
TUU6IFdlIHNob3VsZCBzaGFyZSBtb3JlIGNvZGUgd2l0aCBXb3JrZXJTY3JpcHRDb250cm9sbGVy
LgorY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2xldFNjcmlw
dENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBleHBs
aWNpdCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3JrbGV0R2xvYmFsU2NvcGUqKTsKICAgICBX
b3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8SlNDOjpWTT4mJiwgV29ya2xldEdsb2JhbFNjb3Bl
Kik7CiAgICAgfldvcmtsZXRTY3JpcHRDb250cm9sbGVyKCk7CiAKQEAgLTY0LDYgKzY1LDE1IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KTsKICAgICB2b2lkIGRpc2FibGVXZWJBc3NlbWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSk7CiAKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1
aXJlSGVhcEFjY2VzcygpIGZpbmFsOworCisgICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlv
bihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsK
KyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6
OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOworCisgICAgdm9pZCBzY2hlZHVsZUV4
ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
LCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQg
ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9u
PiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0g
bnVsbHB0cik7CiAKQEAgLTg3LDcgKzk3LDggQEAgcHJpdmF0ZToKICAgICBXb3JrbGV0R2xvYmFs
U2NvcGUqIG1fd29ya2xldEdsb2JhbFNjb3BlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrbGV0
Q29uc29sZUNsaWVudD4gbV9jb25zb2xlQ2xpZW50OwogICAgIEpTQzo6U3Ryb25nPEpTV29ya2xl
dEdsb2JhbFNjb3BlPiBtX3dvcmtsZXRHbG9iYWxTY29wZVdyYXBwZXI7CisgICAgbXV0YWJsZSBM
b2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrOworICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5n
RXhlY3V0aW9uIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggNmExMDFjMzk1OTNjYzRjMTU0
Yzc0NWY2ZDc5NzM3YTAyYTkyM2Y2ZC4uMGI5YWIxZGNlMzRhNTIwZDgyZTJmYWQ1ZjVkMDZhODY5
ZWY3NGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcCgpOwogICAgIH0KIAotICAgIHZvaWQgc3RhcnQoKSB7
IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0
aW9uLT5zdGFydCh7IH0pOyB9CiAgICAgdm9pZCBzdG9wKCkgeyBtX2Rlc3RpbmF0aW9uLT5zdG9w
KCk7IH0KICAgICBib29sIGlzUGxheWluZygpIHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmlzUGxh
eWluZygpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVzUGVyQnVmZmVyKCkgY29uc3QgeyByZXR1cm4g
bV9kZXN0aW5hdGlvbi0+ZnJhbWVzUGVyQnVmZmVyKCkgOyB9CkBAIC0xMjUsNyArMTI1LDcgQEAg
cHJpdmF0ZToKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvbjsK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCAwNjk0NWJhZmQ1ZDE4OWM3YTBmOWM3
MjQwMmJiODg5ZGM4MDdmNmY0Li44MjEzODAwYjlmMTBjNTgyNjBlMDdhNzkwZjdjYjIwYTdlMGVh
MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC00MywxMCArNDMs
MTAgQEAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKIHVzaW5nIEF1ZGlvRGVz
dGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOwogdXNpbmcgQXVkaW9JT0NhbGxi
YWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9E
ZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAg
IHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eT4oY2FsbGJhY2ss
IGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgc2FtcGxlUmF0ZSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKTsKIH0KIAogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25l
ZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGZsb2F0IHNhbXBsZVJhdGUpCkBAIC03Nyw4ICs3Nyw5IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCiAgICAgfSk7CiB9CiAKLXZv
aWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFydCgpCit2b2lkIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYp
PiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
U3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpT
dGFydEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJl
cGx5KG1faXNQbGF5aW5nKSwgMCk7CkBAIC04OSwxOSArOTAsMzEgQEAgdm9pZCBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAg
ICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3Rp
bmF0aW9uKG1fZGVzdGluYXRpb25JRCksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5n
KSwgMCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6
OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9CdXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyByZW5k
ZXJpbmcgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gQXVkaW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUs
IHdoaWNoIGlzIGxpa2VseSBub3QgYSBnb29kIGlkZWEuCisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNT
RVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCkpOwogICAgIGF1dG8gYXVkaW9C
dXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCks
IGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQogICAg
ICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5j
aGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsK
IAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEu
ZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb24pOwotCi0gICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKKyAgICBhdXRvIGRvUmVuZGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9CdXMgPSBXVEZNb3ZlKGF1ZGlvQnVzKSwgZnJhbWVz
VG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24g
PSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb25dIHsKKyAgICAgICAgbV9jYWxsYmFjay5yZW5k
ZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOwor
ICAgIH07CisgICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgeworICAgICAgICBtX2Rp
c3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVuZGVyID0gV1RGTW92ZShkb1JlbmRlciksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBkb1JlbmRlcigpOworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGRvUmVuZGVyKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQogfQog
CiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKGJv
b2wgaXNQbGF5aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKaW5kZXggYWRhNmZl
ZWZmMzc0MzBmM2M0ZGQzN2YxM2M3ZTNhNGU3NjZhMzlkYS4uOTA3ZWNmNWE3N2Y0MmI5NDc4OTBi
ZGYzYTE3ZTE4ZWNmYjVhYTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBA
IC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1
ZGlvQnVzOwogICAgIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxs
YmFjazsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3Jl
YXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWdu
ZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHko
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpOwogICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoKTsKQEAg
LTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb24KLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChG
dW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVh
ZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BsYXlp
bmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lzUGxheWluZzsgfQogICAgIGZsb2F0IHNhbXBsZVJh
dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KQEAgLTczLDYgKzcz
LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2ZyYW1lc1BlckJ1ZmZlciB7IDAgfTsKICAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CiAgICAg
Ym9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07CisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
V2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDJlODYxYTFlNGUzMWUxNDc4MmEyYjllODMxOThj
MTY3YTU5NDYxMTMuLmQ1YWVmMTUzNGFkMjM2NWQyMTM3YTE3YjZmNmQ0NGUxZWY4NTE5ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRp
YVN0cmF0ZWd5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYk1l
ZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OwogCiAjaWYgRU5BQkxF
KFdFQl9BVURJTykKLXN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBX
ZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKK1JlZjxXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwKICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAppbmRleCA4MTdjNGMyOWIxNzMyZjQ1ZjkwZTIxNTVk
NjVjZWU4NDdjMTdiZWUyLi42YjdiOWNlNjAzYTg3MzllNzFkOTA0NzVmY2M3ODcyNjhmNmQ5ZmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sm
LAorICAgIFJlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0
aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKICNlbmRpZgog
I2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGZh
ZjkzYjczYTJiMDE0MTAzODA1YTVjYzZiY2E3YjY1M2E2NTI3YjcuLmViYmIzYmVhNmVkYmI0N2Jj
YjRlMmQwYjI5N2ZjZDA1ZWJhNjMyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0K
QEAgLTY5LDcgKzY5LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZp
bmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FV
RElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rl
c3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
CiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNl
SWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxl
UmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCBkZjRhMWY3ODUwNGRi
ZTIzMGE5NzdlOTdmZDI1OWQyNGU0ZjkyMDMxLi5lMDM0MjNkNzUzY2IxOTgwZWUzZWI4ODkyZmEy
ODUxZWU0OTYyNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTY1LDcg
KzY1LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVi
bGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAg
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwK
KyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAg
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVy
biBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMzFhZWMzODJlN2JhM2Ez
YWJmOWYyNzEyMmZiODRlMjA1Nzg4MDdjNC4uMWQwOTEzYjRlZjA1OWE0ZTFlNzkwNmM1ZWI0OWRl
ZGI2NjQ2NDU5NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9t
YWluLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAt
NzIsNyArNzIsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2Rl
ID0gZS5leGl0X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVy
YXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxl
bWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lf
ZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICBkZWYg
Z2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBz
dXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5k
ZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVz
X2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3Mu
bGlzdGRpcihpbnB1dF9kaXJlY3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikg
PSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X2ZpbGUpCkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIEJp
bmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlJywgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLAogICAgICAgICAgICAgICAgJy0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZScsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAg
ICctLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHBhaW50d29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tYXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgYXVkaW93b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS10ZXN0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlJywgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAg
ICAgICAgICAgICAgJy0tdmFsaWRhdGVBZ2FpbnN0UGFyc2VyJ10KIApAQCAtMjAxLDYgKzIwMiw3
IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbCcKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSA9ICdXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBwYWlu
dHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJworICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuaWRsJwogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVu
YW1lID0gJ0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbCcKIAogICAgICAgICB3b3Jr
X2RpcmVjdG9yeSA9IHRlbXBmaWxlLm1rZHRlbXAoKQpAQCAtMjEzLDkgKzIxNSwxMCBAQCBjbGFz
cyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVz
ZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNl
bGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYu
cmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRh
bF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmls
ZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVj
dG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVk
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBw
bGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19j
b25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRl
ZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1
ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0
ZSBhIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRpbC5y
bXRyZWUod29ya19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzNSw2ICsy
MzgsOCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19w
YXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdn
bG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxs
X3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2No
YW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgYXVk
aW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKKyAgICAgICAgICAg
ICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0
X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0
b3J5LCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAg
ICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKIAo=
</data>
<flag name="commit-queue"
          id="426054"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410186</attachid>
            <date>2020-09-30 18:09:58 -0700</date>
            <delta_ts>2020-09-30 19:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930180957.patch</filename>
            <type>text/plain</type>
            <size>163711</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5iZGNmNzc5YmRiZmQwODY5NjYwMzI1MmJmZTcxMjIzYWI3NjQyMzExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODEsMTAgKzgxLDExIEBAIEFzeW5jQ2xpcGJvYXJk
QVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NPQSkiIDogdHJ1ZQogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotQXVkaW9Xb3JrbGV0RW5hYmxlZDoKK0F1ZGlvV29ya2xldEFQSUVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25k
aXRpb246IEVOQUJMRShXRUJfQVVESU8pCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdh
Y3k6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDRkZmNlYmYyNDQ1YTZjNGE1ZTk2MzQ4NWU0NjM1
NTQ2Zjc2Y2Y5MGUuLjE5NDM4MDIzYzQzNThiMDYwNjEwM2M2NWM0N2Q1ODlmN2VlNWMzNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NzQsNiArNDc0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtMTc2Niw2ICsx
NzY3LDcgQEAgc2V0KERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS8KIHNldChTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFBBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Q
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIAogc2V0KFdlYkNv
cmVfSU5URVJGQUNFX0xJQlJBUklFUyBXZWJDb3JlKQogc2V0KFdlYkNvcmVfSU5URVJGQUNFX0lO
Q0xVREVfRElSRUNUT1JJRVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElS
fSkKQEAgLTE5NTEsNyArMTk1Myw4IEBAIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5n
cwogICAgICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSAke1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KLSAgICAgICAgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtQ
QUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCisgICAgICAgIC0tcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7QVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9KQogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVBFTkRFTkNJRVMgV2ViQ29yZUJpbmRpbmdz
KQogCiBpZiAoRU5BQkxFX1dFQklOU1BFQ1RPUlVJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNGZjMDU0NGY5Y2Q5NzYxYWUwMWRjYjY1
MTQ4YzM0YTM4MmJlYWJkOS4uYThkY2Y5Njk4MmE0MDgyOTk3NDU4MjU4MzRiNzE2MGI0NWQyN2Y1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0zMzAsNiArMzMwLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCA0NDIxNjA0NjdkZTE2NWU3NWQ1NDQ5NzUwZmRkYTEzY2Vk
Yzc0NjgwLi4zNjc5NWVhNDEzMzhlZGRhODRhZDI4MzRmNjg4ZGVkMzIwNGRlMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMSw0
ICsxLDUgQEAKICMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgZ2VuZXJhdGUteGNmaWxl
bGlzdHMgc2NyaXB0LgorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
Q1NTUHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaApAQCAtMjA3LDYgKzIwOCw4IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291
cmNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1RyYWNrTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvV29ya2xldE5vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRiMWQ2YWE0NjRhM2EyMDE0ODU5NjFl
ZjcxMTUzNjE1N2UzZjBhYjYuLjJjMWMxMDg5YWQ1YWI2Yjc1OWY1MDZkYzFhZTkwM2NmZjIwNjA2
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDA3LDYgKzQwNyw3IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvVGltZXN0YW1wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIFwKQEAgLTE3NDgsNiArMTc0OSw3IEBAIERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1CiBTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUgPSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorQVVESU9XT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwKIElETF9GSUxFU19UTVAgPSBpZGxfZmlsZXMudG1wCiBJRExfQVRUUklCVVRFU19GSUxF
ID0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgogCkBAIC0x
NzY4LDEzICsxNzcwLDE0IEBAIElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklD
RVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKLSAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKQorICAgICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKQogIwogSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQo
SURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNf
VE1QKSAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNv
U3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93
Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChX
T1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQUExFTUVOVEFMX01BS0VG
SUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTKSBMQU5H
VUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNfVE1QKSAtLWlk
bEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNvU3Vic3BhY2Vz
SGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93Q29uc3RydWN0
b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1k
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJQ0FURURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBz
ICQoU1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCiAJJChERUxFVEUpICQoSURMX0ZJTEVTX1RN
UCkKIAogSlMlLmNwcCBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykgJChJRExf
QVRUUklCVVRFU19GSUxFKSAkKElETF9JTlRFUk1FRElBVEVfRklMRVMpICQoRkVBVFVSRV9BTkRf
UExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCmluZGV4IGJlZDdiNDBkYmMzMmRiMzIyZTc5
YjY4NGRhNTBiMGQ5NzZhZWYwYzYuLjJhMmMxMTc1NjhjNGI0Mzc3YjQ2MTQ1MjYxZTM0Y2ExNWEz
M2M5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
RElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9QXVkaW9Xb3JrbGV0QVBJLAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIFNraXBWVGFi
bGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKaW5kZXggYTk5NGEyNGZhMWYzODFkMjkw
Y2RjOTA2Y2NiMWU4NzEwY2NlYmVmYy4uZmNiOTlhNjc2ZmJhNTI3ZmNjNTE0Y2QxODUyYzI2YzQ1
ZTBiMWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmNwcApAQCAtMzEsMTUgKzMxLDM0IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNp
bmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKIAorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEF1ZGlvV29ya2xldD4gQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoKQorUmVmPEF1ZGlvV29ya2xldD4gQXVkaW9Xb3JrbGV0OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8gd29ya2xldCA9IGFkb3B0UmVmKCpu
ZXcgQXVkaW9Xb3JrbGV0KGRvY3VtZW50KSk7CisgICAgd29ya2xldC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHdvcmtsZXQ7Cit9CisKK0F1ZGlvV29ya2xldDo6QXVkaW9Xb3JrbGV0
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IFdvcmtsZXQoZG9jdW1lbnQpCit7Cit9CisKK1Zl
Y3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBBdWRpb1dvcmtsZXQ6OmNyZWF0ZUds
b2JhbFNjb3BlcygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0KTsK
KyAgICAvLyBXZWJBdWRpbyB1c2VzIGEgc2luZ2xlIGdsb2JhbCBzY29wZS4KKyAgICByZXR1cm4g
eyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlKCp0aGlzKSB9OwogfQogCi1BdWRp
b1dvcmtsZXQ6OkF1ZGlvV29ya2xldCgpCitBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogQXVk
aW9Xb3JrbGV0Ojpwcm94eSgpIGNvbnN0CiB7CisgICAgYXV0byYgcHJveGllcyA9IHRoaXMtPnBy
b3hpZXMoKTsKKyAgICBpZiAocHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBkb3duY2FzdDxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eT4ocHJv
eGllcy5maXJzdCgpLnB0cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKaW5kZXggNTUxMTVl
MzEyYTk2ZGZjOGI1M2RiYzcwYjA5NDA1NmIxMzI5NjZkYi4uODAzZmJiNzRkOWQ2MDNlMzY0ZGQ0
M2Y2OGJmODU0OTE0MTI5ODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldC5oCkBAIC0zMywxMiArMzMsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1dvcmtsZXQgOiBwdWJsaWMgV29ya2xldCB7CitjbGFzcyBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0IGZpbmFsIDogcHVi
bGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0PiBjcmVh
dGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKERvY3VtZW50Jik7CisK
KyAgICBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogcHJveHkoKSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICBBdWRpb1dvcmtsZXQoKTsKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXQoRG9jdW1l
bnQmKTsKKworICAgIC8vIFdvcmtsZXQuCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuaWRsCmluZGV4IGJjNWVhOGYwZDVmN2ZiYjRkMzZlYzg2MjhhOTNiYTE0NGFlZGZhZDcu
LjU2MDNmNzhkZjZhYjMyYTFlY2VjOGY4NmYwMjhjMTkzMDFiMmM0ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKQEAgLTI4LDcgKzI4
LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0
aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldEFQSSwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICBTZWN1
cmVDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZjI2MGUyNmZkMTg4
OGE2ZTRjOTVlNzg5NDU2NmQ5OTdmNjM3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVh
ZC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKTsKKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
KEF1ZGlvV29ya2xldFRocmVhZCYgdGhyZWFkLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKKyAgICA6IFdvcmtsZXRHbG9iYWxTY29wZShwYXJhbWV0ZXJzLndpbmRvd1VSTCkK
KyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
K30KKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6On5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgp
ID0gZGVmYXVsdDsKKworVGhyZWFkKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6dW5kZXJseWlu
Z1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLT50aHJlYWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTViZmE0Y2VjNmFmZGJmMmYzMmNlMzk2YTdkYmQy
MzNhZjkxNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworc3RydWN0
IFdvcmtsZXRQYXJhbWV0ZXJzOworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+IGNyZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3Qg
V29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSh0aHJlYWQsIHBhcmFtZXRlcnMpKTsK
KyAgICB9CisgICAgfkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7CisKKyAgICBUaHJlYWQqIHVu
ZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVy
cyYpOworCisgICAgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVhZD4gbV90aHJlYWQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpCitzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1
cm4gaXM8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxX
ZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmlzQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUoKTsgfQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1N2JjYzBhOWY1
ZTcwNDliNTY4OGU3NWI2NzgzNWVkOGQyYzM2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFeHBvc2VkPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldEFQSSwKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCisgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0LAorICAgIEltcGxpY2l0VGhpcywKKyAgICBJc0ltbXV0YWJsZVByb3Rv
dHlwZUV4b3RpY09iamVjdCwKKyAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdE9u
UHJvdG90eXBlLAorICAgIEdsb2JhbD0oV29ya2xldCxBdWRpb1dvcmtsZXQpLAorXSBpbnRlcmZh
Y2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIC8v
IEltcGxlbWVudCBBUEkuCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzIxNjE0YmJjYTJiYzlhMDVmYjBlOTRiYWYxY2ViYjY4YzkzYWEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCisjaW5jbHVk
ZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICA6IG1fd29ya2xl
dChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fd29ya2xldFRocmVhZChBdWRpb1dvcmts
ZXRUaHJlYWQ6OmNyZWF0ZSh7IHdvcmtsZXQuZG9jdW1lbnQoKS0+dXJsKCkgfSkpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fd29ya2xldFRocmVhZC0+c3RhcnQoKTsK
K30KKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6On5BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpID0gZGVmYXVsdDsKKworYm9vbCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9z
dFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBtX3dvcmtsZXRUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE3YWRmNGYy
ODM4MDNhYjk0NTEwM2Q5ZjMyYTZmODc5MWJhMTQ5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0OworY2xhc3MgQXVkaW9Xb3Jr
bGV0VGhyZWFkOworCitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSA6IHB1YmxpYyBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eT4gY3JlYXRlKEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
KHdvcmtsZXQpKTsKKyAgICB9CisKKyAgICB+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsK
KworICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gdGhlIG1haW4gdGhyZWFkIHRvIHBvc3Qg
dGFzayBiYWNrIHRvIHRoZSB3b3JrbGV0IHRocmVhZC4KKyAgICBib29sIHBvc3RUYXNrRm9yTW9k
ZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29u
c3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmKTsKKworICAgIGJvb2wgaXNBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAg
IFdlYWtQdHI8QXVkaW9Xb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgUmVmPEF1ZGlvV29ya2xldFRo
cmVhZD4gbV93b3JrbGV0VGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5KQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9iYWxT
Y29wZVByb3h5JiBwcm94eSkgeyByZXR1cm4gcHJveHkuaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNTYyNzE0ODY2M2YwNDIxOGIxZTU1MDUxNzViMDQ5
NWE1NDY5MTIwNi4uNmIwYzFhMDZlNjAxNWEzZDdiMmNiNmZmYWM3NDkyYmY3OTQ0ZDVjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8s
Ci0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1BdWRpb1dvcmtsZXRBUEksCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRv
SlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAppbmRleCBh
OWUxOWI2OTVlMDZmMjMxMzg4ZTczNWIyYjYwNTI5NzlmMTFmOTA1Li4zMzljNzZmNGIxOGMwOWYy
NTQyYzdhOTYxZTgxNjBhN2I0Mjg5ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbApAQCAtMjgs
NyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRC
eVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0
QVBJLAogXSBkaWN0aW9uYXJ5IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zIDogQXVkaW9Ob2RlT3B0
aW9ucyB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0cyA9IDE7CiAgICAgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5Nzdm
Mzk5NDRmMmJlY2I3NjhjODk1NmNhZjVlZWEyYWQ4OGEwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKQEAg
LTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmgiCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGFyYW1ldGVycyBXb3Jr
bGV0UGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV29ya2xl
dFBhcmFtZXRlcnMgeworICAgICAgICB3aW5kb3dVUkwuaXNvbGF0ZWRDb3B5KCkKKyAgICB9Owor
fQorCitBdWRpb1dvcmtsZXRUaHJlYWQ6OkF1ZGlvV29ya2xldFRocmVhZChjb25zdCBXb3JrbGV0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzLmlz
b2xhdGVkQ29weSgpKQoreworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6c3RhcnQoKQor
eworICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrKTsKKworICAgIFJlZjxUaHJlYWQ+IHRocmVhZCA9IFRocmVhZDo6Y3JlYXRl
KCJXZWJDb3JlOiBBdWRpb1dvcmtsZXQiLCBbdGhpc10geworICAgICAgICB3b3JrbGV0VGhyZWFk
KCk7CisgICAgfSwgVGhyZWFkVHlwZTo6QXVkaW8pOworICAgIC8vIEZvcmNlIHRoZSBUaHJlYWQg
b2JqZWN0IHRvIGJlIGluaXRpYWxpemVkIGZ1bGx5IGJlZm9yZSBzdG9yaW5nIGl0IHRvIG1fdGhy
ZWFkIChhbmQgYmVjb21pbmcgdmlzaWJsZSB0byBvdGhlciB0aHJlYWRzKS4KKyAgICBXVEY6OnN0
b3JlU3RvcmVGZW5jZSgpOworICAgIG1fdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpOworfQorCit2
b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6d29ya2xldFRocmVhZCgpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyNpZiBVU0UoR0xJQikKKyAgICBHUmVmUHRy
PEdNYWluQ29udGV4dD4gbWFpbkNvbnRleHQgPSBhZG9wdEdSZWYoZ19tYWluX2NvbnRleHRfbmV3
KCkpOworICAgIGdfbWFpbl9jb250ZXh0X3B1c2hfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlcjsKKyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3Jl
YXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrKTsKKyAgICAgICAgbV93b3JrbGV0R2xvYmFs
U2NvcGUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3JlYXRlKCp0aGlzLCBtX3BhcmFtZXRl
cnMpOworCisgICAgICAgIHNjcmlwdENvbnRyb2xsZXIgPSBtX3dvcmtsZXRHbG9iYWxTY29wZS0+
c2NyaXB0KCk7CisKKyAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVkKCkpIHsKKyAgICAg
ICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRoZSB0aHJlYWQgaGFk
IGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4aXN0IHlldCwKKyAg
ICAgICAgICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpIGNvdWxkbid0IGJlIGNhbGxlZCBmcm9tIHN0
b3AoKS4KKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNjaGVkdWxlRXhlY3V0aW9uVGVy
bWluYXRpb24oKTsKKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmZvcmJpZEV4ZWN1dGlv
bigpOworICAgICAgICB9CisgICAgfQorCisgICAgcnVuRXZlbnRMb29wKCk7CisKKyNpZiBVU0Uo
R0xJQikKKyAgICBnX21haW5fY29udGV4dF9wb3BfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBSZWZQdHI8VGhyZWFkPiBwcm90ZWN0b3IgPSBtX3RocmVh
ZDsKKworICAgIEFTU0VSVChtX3dvcmtsZXRHbG9iYWxTY29wZS0+aGFzT25lUmVmKCkpOworCisg
ICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiB3b3JrbGV0R2xvYmFsU2NvcGVUb0Rl
bGV0ZTsKKyAgICB7CisgICAgICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRv
IGVuc3VyZSB0aGF0IHdlIGRvbid0IGNoYW5nZSBtX3dvcmtlckdsb2JhbFNjb3BlCisgICAgICAg
IC8vIHdoaWxlIFdvcmtlclRocmVhZDo6c3RvcCBpcyBhY2Nlc3NpbmcgaXQuCisgICAgICAgIGF1
dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVM
b2NrKTsKKworICAgICAgICAvLyBEZWxheSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFdvcmtlckds
b2JhbFNjb3BlIGNvbnRleHQgdW50aWwgYWZ0ZXIgd2UndmUgdW5sb2NrZWQgdGhlCisgICAgICAg
IC8vIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrZXJHbG9iYWxTY29wZU11dGV4LiBUaGlzIGlzIG5l
ZWRlZCBiZWNhdXNlIGRlc3RydWN0aW5nIHRoZQorICAgICAgICAvLyBjb250ZXh0IHdpbGwgdHJp
Z2dlciB0aGUgbWFpbiB0aHJlYWQgdG8gcmFjZSBhZ2FpbnN0IHVzIHRvIGRlbGV0ZSB0aGUgV29y
a2VyVGhyZWFkCisgICAgICAgIC8vIG9iamVjdCwgYW5kIHRoZSBXb3JrZXJUaHJlYWQgb2JqZWN0
IG93bnMgdGhlIG11dGV4IHdlIG5lZWQgdG8gdW5sb2NrIGFmdGVyIHRoaXMuCisgICAgICAgIHdv
cmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlID0gV1RGTW92ZShtX3dvcmtsZXRHbG9iYWxTY29wZSk7
CisgICAgfQorCisgICAgLy8gVGhlIGJlbG93IGFzc2lnbm1lbnQgd2lsbCBkZXN0cm95IHRoZSBj
b250ZXh0LCB3aGljaCB3aWxsIGluIHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KKyAgICAv
LyBXZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVj
YXVzZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhl
bS4KKyAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IG51bGxwdHI7CisKKyAgICAvLyBT
ZW5kIHRoZSBsYXN0IFdvcmtlclRocmVhZCBSZWYgdG8gYmUgRGVyZWYnZWQgb24gdGhlIG1haW4g
dGhyZWFkLgorICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpXSB7IH0pOworCisgICAgLy8gVGhlIHRocmVhZCBvYmplY3QgbWF5IGJlIGFs
cmVhZHkgZGVzdHJveWVkIGZyb20gbm90aWZpY2F0aW9uIG5vdywgZG9uJ3QgdHJ5IHRvIGFjY2Vz
cyAidGhpcyIuCisgICAgcHJvdGVjdG9yLT5kZXRhY2goKTsKK30KKwordm9pZCBBdWRpb1dvcmts
ZXRUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCit7CisgICAgLy8gRG9lcyBub3QgcmV0dXJuIHVudGls
IHRlcm1pbmF0ZWQuCisgICAgbV9ydW5Mb29wLnJ1bihtX3dvcmtsZXRHbG9iYWxTY29wZS5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRUaHJlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTI3MDJjOThmZGY4M2Y5NzUyOTQ0YTQ1MGM5MzRh
Yzg1Mzc5NDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTsKKworc3RydWN0IFdv
cmtsZXRQYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBVUkwgd2luZG93VVJMOworCisgICAgV29y
a2xldFBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCitjbGFzcyBBdWRpb1dv
cmtsZXRUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Xb3JrbGV0VGhy
ZWFkPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IGNyZWF0
ZShjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldFRocmVhZChwYXJhbWV0ZXJzKSk7CisgICAg
fQorCisgICAgdm9pZCBzdGFydCgpOworCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCgpIHsg
cmV0dXJuIG1fcnVuTG9vcDsgfQorICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
bV90aHJlYWQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRU
aHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKKworICAgIHZvaWQgcnVuRXZlbnRMb29w
KCk7CisgICAgdm9pZCB3b3JrbGV0VGhyZWFkKCk7CisKKyAgICBSZWZQdHI8VGhyZWFkPiBtX3Ro
cmVhZDsKKyAgICBXb3JrZXJSdW5Mb29wIG1fcnVuTG9vcDsKKyAgICBXb3JrbGV0UGFyYW1ldGVy
cyBtX3BhcmFtZXRlcnM7CisgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiBtX3dv
cmtsZXRHbG9iYWxTY29wZTsKKyAgICBMb2NrIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDAyYjVmYTA0ZmVkZDkzZWU5YzNhMmQ5NTMw
MzA3ZDIxMDk0NGYzZTYuLmNkYzAzY2ZhYzRkODc3YTcwZWM1M2VhYjhiYTkzY2MzNzU2MDg3ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zCiAg
ICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcih1
bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRpb1dvcmts
ZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKGRvY3Vt
ZW50KSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUo
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKIHsK
ICAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRl
ciBwYWdlIG5hdmlnYXRlLgpAQCAtMTYxLDcgKzE2MSw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJh
c2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5u
ZWxzCiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRp
Zmllcih1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRp
b1dvcmtsZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRl
KGRvY3VtZW50KSkKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRp
YVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKSwgKnRoaXMpKQogICAgICwgbV9yZW5kZXJUYXJnZXQo
V1RGTW92ZShyZW5kZXJUYXJnZXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKaW5kZXggZGY5MzVhNDA4ZjRjYjA0M2E3ZDg5
N2RiNjM3M2I0MTQ3N2Q4ZDc0OC4uYmNkNjgzMDAxOWM2ODYxOTcxMWY3MWZhYWUxZDg1YTZiOTg0
ZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaWRsCkBAIC00Miw3ICs0Miw3IEBACiAgICAgLy8gQWxsIHBhbm5pbmcgaXMg
cmVsYXRpdmUgdG8gdGhpcyBsaXN0ZW5lci4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9M
aXN0ZW5lciBsaXN0ZW5lcjsKIAotICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFi
bGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xl
dCBhdWRpb1dvcmtsZXQ7CisgICAgW1NhbWVPYmplY3QsIFNlY3VyZUNvbnRleHQsIEVuYWJsZWRB
dFJ1bnRpbWU9QXVkaW9Xb3JrbGV0QVBJXSByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Xb3JrbGV0
IGF1ZGlvV29ya2xldDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0NvbnRleHRTdGF0
ZSBzdGF0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhdGVjaGFuZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNzUxZGU5MThjZTFkYzM2YTFjNzllOTUwM2M5
MjhmNGY4OWYwOTZiYy4uYWUzNGZmYmEyM2NkYTE2Y2Q5YWE3NDYwZTdhODcyZTc5ODIxM2U4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsMTAgKzMwLDEzIEBACiAKICNp
bmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC05
OSwxOCArMTAyLDMwIEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJ
bnB1dChjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCiAgICAgICAgICAgICAvLyBSZS1jcmVh
dGUgZGVzdGluYXRpb24uCiAgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAg
ICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwotICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKKyAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5k
ZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAorRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpCit7CisgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94
eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAgICAgIHJldHVybiBb
d29ya2xldFByb3h5ID0gbWFrZVJlZigqd29ya2xldFByb3h5KV0oRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKSB7CisgICAgICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRv
V29ya2xldEdsb2JhbFNjb3BlKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKTsK
KyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9
OworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKIHsKICAgICBBU1NFUlQoaXNJ
bml0aWFsaXplZCgpKTsKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydCgpOworICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRG
dW5jdGlvbigpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTgsNyArMTMzLDcgQEAgdm9p
ZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmIChpc0lu
aXRpYWxpemVkKCkpCi0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAg
ICBjb250ZXh0KCkucG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwogfQogCkBAIC0xNjMsNyAr
MTc4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbEMKICAgICAgICAgLy8gUmUtY3JlYXRlIGRl
c3RpbmF0aW9uLgogICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAgICAgIGNyZWF0
ZURlc3RpbmF0aW9uKCk7Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAg
IG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsK
ICAgICB9CiAKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXgg
ZWRlMTUzM2MxNjQ4MjljZjFlMjNiYTkzYzI5YTg4NjM0MjAzZTRkMi4uN2Q2NWUyNWViNTU0MWE5
Nzc2ZDUwMDZlMTcyZDIwMDViNDNkZThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4pOwogICAgIHZvaWQg
Y3JlYXRlRGVzdGluYXRpb24oKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4gZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCk7CisKICAgICB2b2lkIGluaXRp
YWxpemUoKSBmaW5hbDsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7CkBAIC02MSw3ICs2
Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50KCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFN0cmluZyBtX2lucHV0RGV2aWNlSWQ7CiAgICAgdW5z
aWduZWQgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiAgICAgZmxvYXQgbV9zYW1wbGVS
YXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGZhYTMzNjUyZWRi
Mzc2M2IzOWMxZjZiYjQ3ZjZiYjI0ZmEwM2M0MjAuLjUzYjU1NDEzZTkyNjFiNzcwZWY3YWMzYmFh
ZDZkODZlMGM4MjllY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMxLDcg
KzMxLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQu
aCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5o
IgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiSFJU
RkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05Niw5ICs5OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIG1fc3RhcnRl
ZFJlbmRlcmluZyA9IHRydWU7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CiAKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRpYWxpemUgaGVyZT8K
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhy
ZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5kZXJUaHJlYWQgPSBU
aHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIG9mZlRocmVhZFJl
bmRlcmluZyA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBvZmZsaW5lUmVuZGVyKCk7CiAgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lID0g
bV9jdXJyZW50U2FtcGxlRnJhbWUsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXSB7CiAgICAgICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSBmYWxzZTsKQEAgLTExNCw3
ICsxMTUsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpzdGFydFJlbmRlcmluZygpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwotICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICB9OworCisgICAg
aWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgp
KSB7CisgICAgICAgIHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFs
U2NvcGUoW29mZlRocmVhZFJlbmRlcmluZyA9IFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKV0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgb2ZmVGhyZWFk
UmVuZGVyaW5nKCk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgbGltaXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBh
dWRpby4KKyAgICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRl
cmVyIiwgV1RGTW92ZShvZmZUaHJlYWRSZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NWNjMTA4NTVkOGJhZmVkN2E0
NTNjNGJlOWY0ZDkyZGUyNDUzN2JiLi5jN2VjZmRkMTU1YzUyODBkNTg1NGJmYjUyYmViZWEwMjg0
YWRiN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA1LDcgKzIwNSwxMCBAQCBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9u
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcAogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJu
ZWwuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC0yNTc5LDYg
KzI1ODIsNyBAQCB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKIHdvcmtsZXRz
L1dvcmtsZXQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKIHdvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
CiB3b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCiB4bWwvRE9NUGFyc2VyLmNwcApAQCAtMjY4MCw2ICsyNjg0LDcgQEAgSlNB
dWRpb1RpbWVzdGFtcC5jcHAKIEpTQXVkaW9UcmFjay5jcHAKIEpTQXVkaW9UcmFja0xpc3QuY3Bw
CiBKU0F1ZGlvV29ya2xldC5jcHAKK0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiBKU0F1
ZGlvV29ya2xldE5vZGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmNwcAogSlNBdXRo
ZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1MmRiM2MyMTBjZWFj
ZTUyOTkxODY4ZWNiMGNiNzM2MzVjZmVkMC4uYjBjMjk3MGY1YWNkZjllMjMzMGViZjhkN2E5NDAx
MmQ1ZTYwMzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjQ1MSw2ICsyNDUxLDEwIEBACiAJCTgzM0I5RTMyMUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkYxRjUwOEQ4MDAwRTBFNDI4IC8q
IEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM0MUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkExRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5
c3RlbUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJDMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnku
aCAqLzsgfTsKKwkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFz
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JE
ODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi87IH07CisJCTgz
M0JEODE4MjUyNEQ0RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi87IH07CisJCTgzM0JEODFE
MjUyNEQ1MzAwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTkyNTI0RDUxQjAwNkU3
MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzM0JEODFFMjUyNEQ1
MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIz
IC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggKi87IH07CiAJCTgzM0QxQzc2MjREOEQ1
NEYwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0QxQzczMjREOEQ1MzMwMEU4MTNE
RiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLzsgfTsKIAkJODM0MDdGQzExRThE
OUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM0M0Q5ODQyNEQwREVFOTAwOUFCRDQ5IC8qIFdlYktpdE9z
Y2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQzRDk4MTI0RDBERUE5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCAq
LzsgfTsKQEAgLTI1MDgsNiArMjUxMiw3IEBACiAJCTgzOEY4NkRCMUY1MDlFN0IwMEU4Q0ZDNSAv
KiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAwRThDRkM1IC8qIEZpbGVTeXN0ZW1F
bnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1MEI2M0UwMEU5RDg2QiAvKiBET01G
aWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oICovOyB9OwogCQk4
Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4
NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07CisJCTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyog
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovOyB9OwogCQk4MzlBMkYyRTFFMjA0
QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJH
TFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUIxQTBD
MEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJCTgzOUJFNkQ1MjRGNTg3
NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCAq
LzsgfTsKQEAgLTI1MzUsNiArMjU0MCw3IEBACiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAv
KiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyog
SlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRw
UmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAv
KiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgfTsK
KwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFF
NDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgfTsK
IAkJODNEQjlFMEYyNERBMTk0OTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBDMjREQTE4QjUw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi87IH07CiAJCTgzREI5RTEwMjREQTE5NTcw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwRTI0REExOEI2MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oICovOyB9OwogCQk4M0UzNTlBMjFCQjEwMzFEMDAyQ0VCOTggLyogSlNI
VE1MVGltZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oICov
OyB9OwpAQCAtMjU0NCw2ICsyNTUwLDcgQEAKIAkJODNGQjMzNzExRjUwOEE1NDAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkQxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3MzFGNTA4QTU4MDA5ODZFNTQgLyogRmls
ZVN5c3RlbUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4M0ZCMzM2RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggKi87IH07
CiAJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2QzFGNTA4
QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4M0ZDOTk0QjI1
MjU1N0VBMDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyog
QXVkaW9Xb3JrbGV0VGhyZWFkLmggKi87IH07CiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07CkBAIC0xMDU3OCw2
ICsxMDU4NSwxMyBAQAogCQk4MzNCOUUyRDFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVt
RmlsZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmls
ZVN5c3RlbUZpbGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5
RTJFMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE1MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3Jr
bGV0UGVuZGluZ1Rhc2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzM0JEODFBMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFCMjUyNEQ1
MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcyQjMgLyogQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFCQ0MgLyogSlNQZXJmb3JtYW5jZU9ic2Vy
dmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVy
Zm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzM0QxQzczMjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0QxQzc1MjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNCw2ICsxMDcxOCw3IEBA
CiAJCTgzOTk0NzA5MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRDFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01G
aWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
RmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTk0NzBFMUY1
MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJG
MkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3Rh
dGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVU
cmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQw
MDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDc1Miw2ICsxMDc2Nyw3IEBACiAJCTgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRDUxMUYzMjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVzaFB1bGxGSUZPLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1
c2hQdWxsRklGTy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoUHVsbEZJ
Rk8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzREI5RTBBMjREQTE4QjQwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJU
eXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0RCOUUwRDI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDc5MSw2ICsxMDgwNyw5IEBACiAJCTgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAv
KiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzRkIzMzZFMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1FbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
U3lzdGVtRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNGQzk5NDcyNTI1
NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5
OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
RkM5OTRBMjUyNTU3RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TW9kaWZpZXJJbml0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBV
SUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUV2ZW50SW5p
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNTFEQTlGMTY2MDAzNzIz
N0MgLyogVUlFdmVudEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVJRXZlbnRJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTYxLDggQEAK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4
QjAwOEI1QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDgg
LyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFG
MjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAq
LywKQEAgLTE3NTU0LDggKzE3NTc1LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUg
LyogSW5saW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxp
bmVMaW5lQm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5l
TGluZUJveC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250
ZW50QnJlYWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGlu
ZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElu
bGluZUxpbmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyog
SW5saW5lTGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyog
SW5saW5lTGluZUdlb21ldHJ5LmggKi8sCkBAIC0xODcyMCw2ICsxODczOSw4IEBACiAJCQkJMkU0
MzQ2M0QwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJ
CQkyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywK
IAkJCQkyRTQzNDYzRjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywK
KwkJCQk4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCAqLywKKwkJCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oICovLAogCQkJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBX
b3JrZXJSZXBvcnRpbmdQcm94eS5oICovLAogCQkJCTJFNDM0NjQwMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJSdW5Mb29wLmNwcCAqLywKIAkJCQkyRTQzNDY0MTBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyUnVuTG9vcC5oICovLApAQCAtMTk3MzgsOCArMTk3NTksMTEgQEAKIAkJCQk0QkRFQTMy
NjIxN0ZFMkZBMDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKIAkJCQk0QkRF
QTMyNDIxN0ZFMkU0MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNEJE
RUEzMkEyMTgwMTA3MjAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8sCisJCQkJ
ODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8s
CiAJCQkJODNBQ0QwMTAyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmggKi8sCiAJ
CQkJODNBQ0QwMTIyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmlkbCAqLywKKwkJ
CQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgKi8s
CisJCQkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAq
LywKIAkJCQk0QkRFQTMyOTIxODAwNDBDMDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwICovLAogCQkJCTRCREVBMzI3MjE4MDAzRjcwMDUyREZDRCAvKiBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oICovLAogCQkJKTsKQEAgLTI5ODU4LDExICsyOTg4MiwxOCBAQAogCQkJCTgz
Qjk4NzA2MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuY3BwICovLAogCQkJCTgzQjk4
NzAxMjUyMjVGMEMwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCAqLywKIAkJCQk4M0I5ODZGRDI1
MjI1RjBCMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmlkbCAqLywKKwkJCQk4MzNCRDgxQTI1MjRE
NTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovLAorCQkJCTgzM0JE
ODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovLAorCQkJ
CTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwg
Ki8sCisJCQkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLywKKwkJCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQk4M0I5ODcwMzI1MjI1RjBDMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5jcHAgKi8sCiAJCQkJODNCOTg3MDcyNTIyNUYwRTAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGUuaCAqLywKIAkJCQk4M0I5ODcwNDI1MjI1RjBEMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwgKi8sCiAJCQkJODNCOTg3MDAyNTIyNUYwQjAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmggKi8sCiAJCQkJODNCOTg3MDUyNTIyNUYwRDAwQTkz
OUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCAqLywKKwkJCQk4M0ZDOTk0QTI1MjU1
N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLywKKwkJCQk4M0ZDOTk0OTI1
MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8sCiAJCQkJODMxOThGQkIy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJF
MjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzA0NjcsOCAr
MzA0OTgsMTEgQEAKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYgLyogQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOEIxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQjI1
MjI1RjdEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNC
RDgxRDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MDkyNTIyNUY3MjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4NzBBMjUyMjVG
NzYwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0
NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzE3NzIsNiArMzE4MDYsNyBAQAogCQkJCUNEMDYzRjgzMUUyM0ZBODkwMDgxMkJF
MyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFNTBBMTU1
QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA1OTI2NDFF
MjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCNTdDQjUyRTE4MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVu
dEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0IC8qIElu
bGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlB
QiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc4MCw3
ICszMTgxNSw2IEBACiAJCQkJQkNFNzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8qIElubGluZUl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8q
IElubGluZUxpbmVCb3guaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVC
NDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RjkxNDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU5NSw2ICszNDYyOSw4IEBACiAJCQkJMUFCQzcxMDkx
NzBFNUUxQjAwRjlBOUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhC
NEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2Vy
UmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0
NERFMDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0
NjA5LDcgKzM0NjQ1LDkgQEAKIAkJCQk0QkRFQTMyMDIxN0VDNTVGMDA1MkRGQ0QgLyogV29ya2xl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEI3RjlDNTIyMTgzQjVFNTAwMUNFQkEwIC8qIFdvcmts
ZXRDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyNTIxN0ZFMkU0MDA1
MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgx
ODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQUNEMDEzMjUyMjlFMTAwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5k
aW5nVGFza3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREVBMzI4MjE4MDAzRjcwMDUyREZDRCAv
KiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjQw
OTlFNjQ5MjAwNTZFNTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFt
QnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYyYjBkNmQ1NGE0ZjAwMDJkZWU0YmQyZGZj
N2VjNmVkMTM3ZDg0NjguLmIzYThkNWIxM2M0NTExY2Y3ODQyNTc1OWQ2MDUxNDgxMTE0OTBjMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEF1ZGlv
TGlzdGVuZXIpIFwKICAgICBtYWNybyhBdWRpb1BhcmFtTWFwKSBcCiAgICAgbWFjcm8oQXVkaW9X
b3JrbGV0KSBcCisgICAgbWFjcm8oQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAgICBtYWNy
byhBdWRpb1dvcmtsZXROb2RlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5j
cHAKaW5kZXggMzhkZjY3NzUyZTkwYTZhMmUwMTc0Y2ZhZmJjNGY4NzFlYTgxYzE0YS4uZGE0NmU4
NWMzNDAzYTJlODA3NjM4MjM4MjVkYjg3NDE5ZDc4MWRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkRPTUdDT3V0cHV0Q29uc3RyYWludC5oIgogI2luY2x1ZGUgIkRPTUlz
b1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rv
ckJhc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNjgsOSArNjksMTIgQEAgSlNW
TUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KCkpCiAjZW5kaWYKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKICNp
ZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU+KCkpCi0gICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEds
b2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2Nv
cGU+KCkpCisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKKyAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6Y3JlYXRlPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxp
emF0aW9uR2xvYmFsT2JqZWN0KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNJREJTZXJp
YWxpemF0aW9uR2xvYmFsT2JqZWN0PigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgzYjgyMzRjMzM1ZGVkMTQ1MGQxODEzZmU4
NDI5N2E5NzU4Mzg5NTEuLmI4NDQwZTg3NzBlNDcyOTFmN2VlMjA2MzE5OWVhMDVjM2M0YmIwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKQEAgLTk5LDkgKzk5LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZv
ckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRy
PEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3Bl
OwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6
OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxU
eXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGQwYTU0N2Fj
NTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2MDkuLmUzOTAxODBmNTcxZjllMWUzNWJjOTIz
YjFkNzcxZDRiOTVjZWRhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpA
QCAtNDQsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29u
c29sZUNsaWVudDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCi1jbGFzcyBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyIHsKK2NsYXNzIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKQEAgLTY3
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpL2lzRXhlY3V0aW9u
Rm9yYmlkZGVuKCkgdG8gZ3VhcmQgYWdhaW5zdCByZWVudHJ5IGludG8gSlMuCiAgICAgLy8gQ2Fu
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCiAgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCk7Ci0gICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBD
YWxsZWQgb24gV29ya2VyIHRocmVhZCB3aGVuIEpTIGV4aXRzIHdpdGggdGVybWluYXRpb24gZXhj
ZXB0aW9uIGNhdXNlZCBieSBmb3JiaWRFeGVjdXRpb24oKSByZXF1ZXN0LAogICAgIC8vIG9yIGJ5
IFdvcmtlciB0aHJlYWQgdGVybWluYXRpb24gY29kZSB0byBwcmV2ZW50IGZ1dHVyZSBlbnRyeSBp
bnRvIEpTLgpAQCAtNzksMTEgKzgwLDExIEBAIHB1YmxpYzoKIAogICAgIEpTQzo6Vk0mIHZtKCkg
eyByZXR1cm4gKm1fdm07IH0KICAgICAKLSAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCk7Ci0g
ICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpOworICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3Mo
KSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CiAKLSAgICB2b2lk
IGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZp
Y2F0aW9uQ2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgdm9pZCBh
ZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOwog
CiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CiAgICAgdm9pZCBkZXRh
Y2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDEwZjNlNjY4NjY1NDVhNWE2MGE5
ZWU1YTlmODY3NGFlM2MyODQ5MzIuLjU4ZmQxYTdhMjZmZGQxZGFjNGRiMmI3MGIxYzU0NTM3NWJj
ZDRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC03NzUsNyArNzc1LDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVj
dFByb3RvdHlwZQogCiAgICAgIyBGb3Igd29ya2VycywgdGhlIGdsb2JhbCBvYmplY3QgaXMgYSBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50
eXBlLT5uYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSI7Ci0gICAgIyBGb3Igd29ya2xldHMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgIyBGb3Ig
d29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUg
b3IgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJXb3JrbGV0R2xvYmFsU2NvcGUiOwogCiAgICAgcmV0dXJuIElzRE9N
R2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCBiZWUwZmM1MDY5MTlmY2NmZDE3NWY2
OWNjNTIzYzU3NTZiYzA4YTg4Li5mNGM4NGJjODhjNDExNDVkZDE2ZWQzODNkNGQzOWM0MmNjNWQ2
OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbApAQCAtNDcsNiArNDcsNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CitteSAkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOwogbXkgJGlkbEF0dHJpYnV0
ZXNGaWxlOwpAQCAtNjksNiArNzAsNyBAQCBHZXRPcHRpb25zKCdkZWZpbmVzPXMnID0+IFwkZGVm
aW5lcywKICAgICAgICAgICAgJ3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGU9cycgPT4gXCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAg
ICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdwYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+
IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3N1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcywKICAgICAg
ICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmlidXRlc0ZpbGUsCkBAIC04
Myw2ICs4NSw3IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGCiBkaWUoJ011c3Qgc3BlY2lmeSBh
biBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicp
IHVubGVzcyBkZWZpbmVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1hdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRw
dXQgZmlsZSB1c2luZyAtLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNz
IGRlZmluZWQoJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpIHx8ICFkZWZpbmVkKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogZGllKCdNdXN0IHNwZWNpZnkgdGhlIGZpbGUgbGlzdGlu
ZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykgdW5sZXNzIGRlZmluZWQoJGlk
bEZpbGVOYW1lc0xpc3QpOwogZGllKCdNdXN0IHNwZWNpZnkgSURMIGF0dHJpYnV0ZXMgZmlsZSB1
c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRpZGxBdHRyaWJ1dGVz
RmlsZSk7CkBAIC05NSw2ICs5OCw3IEBAICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlCiAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOworJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYgZGVmaW5lZCgkc3VwcGxlbWVudGFsTWFrZWZp
bGVEZXBzKTsKIAogbXkgQGlkbEZpbGVOYW1lczsKQEAgLTEzNSw2ICsxMzksNyBAQCBteSAkZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0g
IiI7CiAKIG15ICRpc29TdWJzcGFjZXNIZWFkZXJDb2RlID0gPDxFTkQ7CkBAIC0yMzcsNiArMjQy
LDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNo
KSB7CiAgICAgICAgICAgICAgICAgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
Lj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBl
cSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAgICAgICRwYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiQXVkaW9Xb3JrbGV0IikgeworICAgICAgICAgICAgICAg
ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNv
ZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENv
bnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjU0LDYg
KzI2MSw3IEBAIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldvcmtsZXRHbG9iYWxTY29wZSIsICR3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIiwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRl
c3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZGFlMTEwN2QzMzRiYzhmNDNkZjJmNGY3
ZTg0YTk4M2MzNWQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0wLDAgKzEsMiBAQAorcGFydGlhbCBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFi
ZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBA
IC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBi
dWlsZCBzY3JpcHRzIHRoYXQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5o
IGFuZAorICAgIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUg
Y3JlYXRlZCBmb3IgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQg
cHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUg
SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApAQCAtMCwwICsxLDUgQEAKKy8qCisg
ICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisg
ICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFp
bnRXb3JrbGV0LmNwcAppbmRleCAxMzZlNGYxNGVjZmU1ZTRiOWY5Yzk1MjAyNzQzOWE0YTMxZDQ5
NjQ1Li42YTBlMTk2NjQ1NDJlODE2ODFjN2E2OTdlY2M3MTE1YjdhNGRmYzExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkRPTUNTU05hbWVzcGFjZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01NiwxMSArNTcsMTggQEAgY29uc3QgY2hhciogRE9NQ1NTUGFpbnRXb3Jr
bGV0OjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuICJET01DU1NQYWludFdvcmtsZXQiOwog
fQogCi12b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCisvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG92ZXJyaWRlIGFu
ZCByZWx5IG9uIHRoZSBzdGFuZGFyZC1jb21wbGlhbnQgV29ya2xldDo6YWRkTW9kdWxlKCkgaW5z
dGVhZC4KK3ZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVV
UkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiB7CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJUaGlzIGZyYW1lIGlzIGRldGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkb3dubG9hZCB0aGUgc291cmNlIGZyb20g
dGhlIFVSTAogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTExMzYKLSAgICBhdXRvIG1heWJlQ29udGV4dCA9IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjp0
cnlDcmVhdGUoZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7CisgICAgYXV0
byBtYXliZUNvbnRleHQgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKCpkb2N1
bWVudCwgU2NyaXB0U291cmNlQ29kZShtb2R1bGVVUkwpKTsKICAgICBpZiAoVU5MSUtFTFkoIW1h
eWJlQ29udGV4dCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgT3V0T2ZN
ZW1vcnlFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNzAsOSArNzgsMTUgQEAgdm9pZCBQ
YWludFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
bW9kdWxlVVJMLCBXb3JrbGUKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY29udGV4dC0+
cGFpbnREZWZpbml0aW9uTG9jaygpKTsKICAgICBmb3IgKGF1dG8mIG5hbWUgOiBjb250ZXh0LT5w
YWludERlZmluaXRpb25NYXAoKS5rZXlzKCkpCi0gICAgICAgIGRvY3VtZW50LnNldFBhaW50V29y
a2xldEdsb2JhbFNjb3BlRm9yTmFtZShuYW1lLCBtYWtlUmVmKGNvbnRleHQuZ2V0KCkpKTsKKyAg
ICAgICAgZG9jdW1lbnQtPnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShuYW1lLCBt
YWtlUmVmKGNvbnRleHQuZ2V0KCkpKTsKICAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KIAorVmVj
dG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IFBhaW50V29ya2xldDo6Y3JlYXRlR2xv
YmFsU2NvcGVzKCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIHJl
dHVybiB7IH07Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU1BhaW50V29ya2xldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29y
a2xldC5oCmluZGV4IGI5YjEzODViYjA4YTNmMWNlZDRlYjJiNDI0MDNkZDEwN2U1YTg0ZWUuLjA5
NGFlNmMxMmY3NTE5Mzg1YmExYTYyZDdiYjIwNDgyMjNmMmMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgKQEAgLTQxLDE1ICs0MSwyMSBAQCBjbGFzcyBET01DU1NO
YW1lc3BhY2U7CiAKIGNsYXNzIFBhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBhaW50V29ya2xldD4gY3JlYXRlKCkKKyAgICBzdGF0
aWMgUmVmPFBhaW50V29ya2xldD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhaW50V29ya2xldCk7CisgICAgICAgIGF1dG8g
d29ya2xldCA9IGFkb3B0UmVmKCpuZXcgUGFpbnRXb3JrbGV0KGRvY3VtZW50KSk7CisgICAgICAg
IHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgICAgICByZXR1cm4gd29ya2xldDsKICAg
ICB9CiAKLSAgICB2b2lkIGFkZE1vZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxl
VVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7
CisgICAgLy8gV29ya2xldC4KKyAgICB2b2lkIGFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVs
ZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFs
OworICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxT
Y29wZXMoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBQYWludFdvcmtsZXQoKSA9IGRlZmF1bHQ7
CisgICAgZXhwbGljaXQgUGFpbnRXb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAg
OiBXb3JrbGV0KGRvY3VtZW50KQorICAgIHsgfQogfTsKIAogY2xhc3MgRE9NQ1NTUGFpbnRXb3Jr
bGV0IGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NQ1NTTmFtZXNwYWNlPiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCAyYWNmM2YxOGNhZGM2ODZiMzFlYzNhZDA1YmM1OGEwMWIwZWYz
NGFlLi44ZTliMjE5MGY4ZTJiMWE3NDlkMzNmYjMyYzE3ZDBlOWZiY2RjZTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTg0MzksNyArODQzOSw3IEBAIERldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlciYgRG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uCiBQYWludFdvcmtsZXQmIERvY3VtZW50OjplbnN1cmVQYWludFdvcmtsZXQoKQogewogICAg
IGlmICghbV9wYWludFdvcmtsZXQpCi0gICAgICAgIG1fcGFpbnRXb3JrbGV0ID0gUGFpbnRXb3Jr
bGV0OjpjcmVhdGUoKTsKKyAgICAgICAgbV9wYWludFdvcmtsZXQgPSBQYWludFdvcmtsZXQ6OmNy
ZWF0ZSgqdGhpcyk7CiAgICAgcmV0dXJuICptX3BhaW50V29ya2xldDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAwNmEzZWM5MDY1NTgy
NmZiY2Q5MWE4M2I2NDFlMjdmNTllNzVkZTYwLi4wY2NjYzExODE2M2Y5NGU1ZWYyNTg3MDJlMjI4
YjIxZDlkNjJkNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaApAQCAtMTI3LDYgKzEyNywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NQYWludGlu
Z0FQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZDsgfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZvaWQgc2V0QXVkaW9Xb3JrbGV0
QVBJRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2F1ZGlvV29ya2xldEFQSUVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KKyAgICBib29sIGF1ZGlvV29ya2xldEFQSUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2F1ZGlvV29ya2xldEFQSUVuYWJsZWQ7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENT
U19UWVBFRF9PTSkKICAgICB2b2lkIHNldENTU1R5cGVkT01FbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1fQ1NTVHlwZWRPTUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNzc1R5cGVk
T01FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9DU1NUeXBlZE9NRW5hYmxlZDsgfQpAQCAtMzAy
LDYgKzMwNyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAg
Ym9vbCBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFC
TEUoV0VCX0FVRElPKQorICAgIGJvb2wgbV9hdWRpb1dvcmtsZXRBUElFbmFibGVkIHsgZmFsc2Ug
fTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICBib29sIG1fQ1NTVHlw
ZWRPTUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDc5
MGRiNGI3ZTk2ZmE5NmRmODhmZDY3OGNhZTBjNzJlNTIzYTgxOTkuLjdjZDVkZjEwZmZkMTBmZjcz
ZDQ5M2JlMWMwOWE4MTlkMjQ1MjY0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAg
LTI1OSw4ICsyNTksNiBAQCBwcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCi1h
dWRpb1dvcmtsZXRFbmFibGVkOgotICBpbml0aWFsOiBmYWxzZQogcGFnaW5hdGVEdXJpbmdMYXlv
dXRFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogZnVsbFNjcmVlbkVuYWJsZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNDNkNTc2NTI5OGMwNjc5MmM2ZGRj
ZTg1YzQyYTBhM2Y1NzVhODc4My4uOTg1MjA1ZGFiYWFiOGRhMzg2ZjY1NjRkODA5NmZkMjg2NTVj
MWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAtMzcsNyAr
MzcsNyBAQCBzdHJ1Y3QgTm93UGxheWluZ0luZm87CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRp
YVN0cmF0ZWd5IHsKIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24o
CisgICAgdmlydHVhbCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKICAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bi5oCmluZGV4IGRlYjc1N2RjNDVlNTc4NTg1MjE3ZmQzYmVjMDcxMmI2NDRkNzUzNzQuLjE2MGM2
NTc4ZTE1ZWQ1ZWE3NTI1ZGM3NjhiZDRlZjNmZGM3NGY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNkZWZpbmUgQXVkaW9EZXN0aW5hdGlvbl9oCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDE2ICs0MSwxNiBAQCBjbGFzcyBB
dWRpb0lPQ2FsbGJhY2s7CiAvLyBUaGUgYXVkaW8gaGFyZHdhcmUgcGVyaW9kaWNhbGx5IGNhbGxz
IHRoZSBBdWRpb0lPQ2FsbGJhY2sgcmVuZGVyKCkgbWV0aG9kIGFza2luZyBpdCB0byByZW5kZXIv
b3V0cHV0IHRoZSBuZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1ZGlvLgogLy8gSXQgb3B0aW9uYWxs
eSB3aWxsIHBhc3MgaW4gbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dCB3aGVuIGl0IGNhbGxzIHJlbmRl
cigpLgogCi1jbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIHsKK2NsYXNzIEF1ZGlvRGVzdGluYXRpb24g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9EZXN0aW5hdGlvbj4gewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9m
SW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4K
ICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBm
b3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2
aWNlSWQuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERl
dmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAg
IHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzUGxheWluZygpID0gMDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggNzRhZDYxNmZhOWUyNWRlYjk5OWM5NmI2
NjdlZDE0OTQ3MGJmNjg3Mi4uZGE0ZTRiMmM4YjYwNzM0ODNmOWZhZGM2N2JhZmJmZmY4Njg1Zjlh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIGNvbnN0ZXhw
ciBzaXplX3QgZmlmb1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6
ZTsKIAogQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpjcmVhdGVPdmVycmlkZSA9IG51bGxwdHI7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBj
YWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1
ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
IGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAg
ICAgLy8gRklYTUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAK
QEAgLTU1LDcgKzU1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAoQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSkKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVz
dGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUoY2FsbGJhY2ssIHNhbXBsZVJhdGUpOwogCi0g
ICAgYXV0byBkZXN0aW5hdGlvbiA9IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkNvY29hPihj
YWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgYXV0byBk
ZXN0aW5hdGlvbiA9IGFkb3B0UmVmKCpuZXcgQXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxiYWNr
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7CiAgICAgZGVzdGluYXRpb24t
PmNvbmZpZ3VyZSgpOwogICAgIHJldHVybiBkZXN0aW5hdGlvbjsKIH0KQEAgLTEwMyw5ICsxMDMs
MTAgQEAgdW5zaWduZWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpmcmFtZXNQZXJCdWZmZXIoKSBj
b25zdAogICAgIHJldHVybiBtX3JlbmRlckJ1cy0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQgQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJU
aHJlYWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCIp
OworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCk7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9v
dXRwdXRVbml0KTsKIAogICAgIGlmICghcmVzdWx0KQpAQCAtMTE2LDYgKzExNyw3IEBAIHZvaWQg
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIHsKICAgICBMT0coTWVkaWEsICJBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091dHB1
dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0g
bnVsbHB0cjsKIAogICAgIGlmICghcmVzdWx0KQogICAgICAgICBzZXRJc1BsYXlpbmcoZmFsc2Up
OwpAQCAtMTIzLDYgKzEyNSw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkK
IAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxheWlu
ZykKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1faXNQbGF5aW5nTG9jayk7CiAgICAg
aWYgKG1faXNQbGF5aW5nID09IGlzUGxheWluZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMs
MTggKzE3NiwzOCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25z
dCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIgbgogCiAgICAgLy8gQXNzb2NpYXRl
IHRoZSBkZXN0aW5hdGlvbiBkYXRhIGFycmF5IHdpdGggdGhlIG91dHB1dCBidXMgdGhlbiBmaWxs
IHRoZSBGSUZPLgogICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1RvQnVzKGJ1ZmZlcnMsIG1fb3V0cHV0
QnVzLmdldCgpLCBudW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9mRnJhbWVzLCAwLCBudW1iZXJPZkZy
YW1lcyk7Ci0gICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0cHV0
QnVzLnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyOwog
CisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOworICAg
ICAgICBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVt
YmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmts
ZXQsIHdlIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgorICAgIGlmICht
X2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lc1RvUmVuZGVy
XSgpIG11dGFibGUgeworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1f
aXNQbGF5aW5nTG9jaywgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgICAgICAgICBpZiAobG9jay5v
d25zX2xvY2soKSAmJiBtX2lzUGxheWluZykKKyAgICAgICAgICAgICAgICByZW5kZXJPblJlbmRl
cmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOworCisgICAgcmV0dXJu
IG5vRXJyOworfQorCisvLyBUaGlzIHJ1bnMgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVu
IEF1ZGlvV29ya2xldCBpcyBlbmFibGVkLCBvbiB0aGUgYXVkaW8gZGV2aWNlJ3MgcmVuZGVyaW5n
IHRocmVhZCBvdGhlcndpc2UuCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25S
ZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpCit7CiAgICAgZm9yIChzaXplX3Qg
cHVzaGVkRnJhbWVzID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hlZEZy
YW1lcyArPSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpIHsKICAgICAgICAgaWYg
KG1fcmVzYW1wbGVyKQogICAgICAgICAgICAgbV9yZXNhbXBsZXItPnByb2Nlc3ModGhpcywgbV9y
ZW5kZXJCdXMucHRyKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0
cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1w
KTsKIAorICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOwogICAgICAg
ICBtX2ZpZm8tPnB1c2gobV9yZW5kZXJCdXMucHRyKCkpOwogICAgIH0KLQotICAgIHJldHVybiBu
b0VycjsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmgKaW5kZXggMDBkZGEyZmIyYTM3YjgzZjEwZWZhNTI3MWIxNzY4YTgwYjQ4MTFlYy4uMDg5
NGQ2MjFhMmYxNTMyMjUxMjczNjUwYjZlNWEzZDNlYzk5NmY4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQXVkaW9CdXM7CiBjbGFzcyBNdWx0aUNoYW5u
ZWxSZXNhbXBsZXI7CiBjbGFzcyBQdXNoUHVsbEZJRk87CiAKLXVzaW5nIENyZWF0ZUF1ZGlvRGVz
dGluYXRpb25Db2NvYU92ZXJyaWRlID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwordXNpbmcgQ3JlYXRlQXVk
aW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgPSBSZWY8QXVkaW9EZXN0aW5hdGlvbj4oKikoQXVk
aW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIC8vIEFuIEF1ZGlvRGVzdGluYXRp
b24gdXNpbmcgQ29yZUF1ZGlvJ3MgZGVmYXVsdCBvdXRwdXQgQXVkaW9Vbml0CiBjbGFzcyBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbiwgcHVibGljIEF1ZGlv
U291cmNlUHJvdmlkZXIgewpAQCAtNjUsMTEgKzY1LDE1IEBAIHByb3RlY3RlZDoKIAogICAgIHZv
aWQgc2V0QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiYpOwogCisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3Bh
dGNoVG9SZW5kZXJUaHJlYWQ7CisKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAotICAgIGZyaWVuZCBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlv
SU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOwor
ICAgIHZvaWQgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpOwor
CisgICAgZnJpZW5kIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBm
bG9hdCk7CiAgICAgCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICB2b2lkIHByb3Zp
ZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwpAQCAtOTEs
MTEgKzk1LDE0IEBAIHByaXZhdGU6CiAgICAgLy8gUmVzb2x2ZXMgdGhlIGJ1ZmZlciBzaXplIG1p
c21hdGNoIGJldHdlZW4gdGhlIFdlYkF1ZGlvIGVuZ2luZSBhbmQKICAgICAvLyB0aGUgY2FsbGJh
Y2sgZnVuY3Rpb24gZnJvbSB0aGUgYWN0dWFsIGF1ZGlvIGRldmljZS4KICAgICBVbmlxdWVSZWY8
UHVzaFB1bGxGSUZPPiBtX2ZpZm87CisgICAgTG9jayBtX2ZpZm9Mb2NrOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9yZXNhbXBsZXI7CiAgICAgQXVkaW9J
T1Bvc2l0aW9uIG1fb3V0cHV0VGltZXN0YW1wOwogCiAgICAgZmxvYXQgbV9jb250ZXh0U2FtcGxl
UmF0ZTsKKworICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwogICAgIGJvb2wgbV9pc1BsYXlpbmcg
eyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDhmZGViNmEyNDI0ODQ5Y2FjMTdiYmU5MGFhZTcxMmE4OWEyNGQxMDAuLmMwNWFlNmJl
NjI5ZGRiM2RmNjcyMjgyOTExMWNlOGI2NDAwZWU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZvaWQgYXV0b0F1
ZGlvU2lua0NoaWxkQWRkZWRDYWxsYmFjayhHc3RDaGlsZFByb3h5KiwgR09iamVjdCogb2JqZWN0
LCBnY2gKICAgICAgICAgZ19vYmplY3Rfc2V0KEdTVF9BVURJT19CQVNFX1NJTksob2JqZWN0KSwg
ImJ1ZmZlci10aW1lIiwgc3RhdGljX2Nhc3Q8Z2ludDY0PigxMDAwMDApLCBudWxscHRyKTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSB1c2Ugb2YgaW5wdXREZXZp
Y2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNjAsNyArNjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFj
ayYgY2FsbAogICAgIGlmIChudW1iZXJPZk91dHB1dENoYW5uZWxzICE9IDIpCiAgICAgICAgIExP
RyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgldSwgJXUsICVmKSAtIHVuaGFuZGxl
ZCBvdXRwdXQgY2hhbm5lbHMiLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcj4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoY2FsbGJhY2ssIHNhbXBsZVJhdGUp
KTsKIH0KIAogZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkKQEAg
LTE2NSw3ICsxNjUsNyBAQCBnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5k
bGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXZv
aWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYp
CiB7CiAgICAgQVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKICAgICBpZiAoIW1fYXVkaW9T
aW5rQXZhaWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXgg
Y2ZlNjg5MjA4ZDA5NjhhNTFhOGJiMWQxZTg3ZjZlMTlkMGYyMzE2Ni4uZDU1MTA0Yzg4Y2NiY2Rm
ZmZmOTdjNGU3YTQ5NDk4NmY5OTZiZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZpcnR1
YWwgfkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKTsKIAotICAgIHZvaWQgc3RhcnQoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4m
JiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlp
bmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDlkYWE3ZDAxNDFkODEwNGU0ZjVjNGMyNjQ4
YmM4YzZiZTUyNmMwYzguLjVhMTJjZGU0ZmNkZmM1N2ZhZDQyYjdkOWU4ZmU3MzIwNDM1MDlkNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDUsOCArNDUsOSBAQCBNb2NrQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssCiAKIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6On5Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hKCkgPSBkZWZhdWx0OwogCi12b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0
YXJ0KCkKK3ZvaWQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CisgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KTsKICAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgeyBtX251bWJlck9mRnJhbWVz
VG9Qcm9jZXNzIC8gc2FtcGxlUmF0ZSgpIH0pOwogICAgIHNldElzUGxheWluZyh0cnVlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmgKaW5kZXggZDRlYWU4MzM0MzVjMGE2MDQ1NWVkMGI5NjkyNTY4YzhlYzYz
ZjM2ZC4uYThkMjhjNGVkMWJiZWZmZDMzMDk0NTBkYWFmMzI5ZWJhMjUzNGMxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmgKQEAgLTM4LDEyICszOCwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiBjbGFz
cyBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGluYXRp
b25Db2NvYSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkgeyByZXR1cm4gbWFrZVVuaXF1ZTxNb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgc2FtcGxlUmF0ZSk7IH0KKyAgICBzdGF0
aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywgc2FtcGxlUmF0ZSkpOworICAgIH0K
KwogICAgIFdFQkNPUkVfRVhQT1JUIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0Nh
bGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnQo
KSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKICAgICB2b2lkIHRpY2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggYjJm
MzMxMmNmNGIwNDYxYjg3ZmFhYWMzOWNkNDJhMDYzZTU4YWM3My4uMWZlOTM5ODdlZjk2MWZkZmJl
MzhmNDdjYTY3MWFmNWZkYTk4ZDlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU0NCw0ICs1NDQsOSBAQCBSZWZlcnJlclBvbGljeSBXb3Jr
ZXJHbG9iYWxTY29wZTo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAogICAgIHJldHVybiBtX3JlZmVy
cmVyUG9saWN5OwogfQogCitUaHJlYWQqIFdvcmtlckdsb2JhbFNjb3BlOjp1bmRlcmx5aW5nVGhy
ZWFkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aHJlYWQudGhyZWFkKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaAppbmRleCBiZDljZjE0MGRkNTJmYjg0OThiOWZhNDEwNjBjOTNhYmZhNjgzODVlLi45MGRm
M2I2YWYzZDYzZWM2MWFlYzlhMTIzYzA4NzdlNzllMzRiMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
SW1hZ2VCaXRtYXAuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlICJXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIuaCIKQEAgLTU5LDcgKzYwLDcgQEAgbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJD
b25uZWN0aW9uUHJveHk7CiB9CiAKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJl
ZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2Vy
R2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMgeworY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1
YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzLCBwdWJsaWMgV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyR2xv
YmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlKCk7CkBA
IC04NSwxMyArODYsMTUgQEAgcHVibGljOgogICAgIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbiYg
c3dDbGllbnRDb25uZWN0aW9uKCk7CiAjZW5kaWYKIAotICAgIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CisgICAgV29ya2VyU2NyaXB0
Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KICAg
ICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdCA9IG51bGxwdHI7IH0KIAogICAgIFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biAqbV9pbnNwZWN0b3JDb250cm9sbGVyOyB9CiAKICAgICBXb3JrZXJUaHJlYWQmIHRocmVhZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkOyB9CiAKKyAgICBUaHJlYWQqIHVuZGVybHlpbmdUaHJl
YWQoKSBjb25zdCBmaW5hbDsKKwogICAgIHVzaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhh
c1BlbmRpbmdBY3Rpdml0eTsKIAogICAgIHZvaWQgcG9zdFRhc2soVGFzayYmKSBmaW5hbDsgLy8g
RXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KQEAg
LTExOSw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgYm9vbCBpc0Nsb3NpbmcoKSB7IHJldHVy
biBtX2Nsb3Npbmc7IH0KKyAgICBib29sIGlzQ2xvc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY2xvc2luZzsgfQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NTQ4ZTA4NDhiZTM1MjJiNmFkOWMzMjg1MzM5NzQ2YzdjMzk3NDI4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCisKK25hbWVz
cGFjZSBXVEYgeworY2xhc3MgVGhyZWFkOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBXVEY6OlRocmVhZCogdW5kZXJseWluZ1RocmVh
ZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgPSAw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZjliZjgzZTkzMGRkMTY1ZDhhMzMwNDcwNTJhZDU1ZDIyZmFmYTc4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
dW5Mb29wVGltZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHJl
bGVhc2VIZWFwQWNjZXNzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhY3F1aXJlSGVhcEFjY2Vz
cygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6
OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6
OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBpc1Rl
cm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKaW5kZXggNjZlY2Q1
MzZmODEzZDAyOWM0OTdmMWFlYTdmMjE5ZWRmYzc1YjM3NS4uYmI2MWZjNWYyYTk3ZGI4NGIxMTNi
ZTIyM2M3YTdhZGM3MTliNDk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxv
b3AuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgog
I2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKLSNp
bmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAKICNpZiBVU0UoR0xJQikK
QEAgLTEzMiw3ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIElzRm9yRGVidWdnaW5nIG1faXNGb3JE
ZWJ1Z2dpbmcgeyBJc0ZvckRlYnVnZ2luZzo6Tm8gfTsKIH07CiAKLXZvaWQgV29ya2VyUnVuTG9v
cDo6cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpy
dW4oV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNl
dHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpObyk7CiAgICAg
TW9kZVByZWRpY2F0ZSBtb2RlUHJlZGljYXRlKGRlZmF1bHRNb2RlKCkpOwpAQCAtMTQzLDEzICsx
NDMsMTMgQEAgdm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRl
eHQpCiAgICAgcnVuQ2xlYW51cFRhc2tzKGNvbnRleHQpOwogfQogCi1NZXNzYWdlUXVldWVXYWl0
UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluRGVidWdnZXJNb2RlKFdvcmtlckdsb2JhbFNjb3Bl
JiBjb250ZXh0KQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRl
YnVnZ2VyTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4dCkKIHsKICAgICBS
dW5Mb29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Olll
cyk7CiAgICAgcmV0dXJuIHJ1bkluTW9kZSgmY29udGV4dCwgTW9kZVByZWRpY2F0ZSB7IGRlYnVn
Z2VyTW9kZSgpIH0sIFdhaXRGb3JNZXNzYWdlKTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3Vs
dCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVz
dWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAgICBB
U1NFUlQobW9kZSAhPSBkZWJ1Z2dlck1vZGUoKSk7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0
aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpObyk7CkBAIC0xNTgsMTAgKzE1OCwx
MCBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3Jr
ZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLU1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2Jh
bFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2Rl
IHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1v
ZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNh
dGUmIHByZWRpY2F0ZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQp
OwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJy
ZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51bmRlcmx5aW5nVGhyZWFkKCkgPT0gJlRocmVh
ZDo6Y3VycmVudCgpKTsKIAogICAgIEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uQ2FsbGJhY2sgdGltZXJBZGRlZFRhc2sgPSBXVEY6OmNyZWF0ZVNoYXJlZFRhc2s8SlNDOjpK
U1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25UeXBlPihbdGhpc10gewogICAgICAgICAv
LyBXZSBkb24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBoZXJlLCB3ZSBqdXN0IHdhbnQgdG8gbG9v
cCBhcm91bmQgcnVuSW5Nb2RlCkBAIC0xODYsMTMgKzE4NiwxMyBAQCBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4
dCwgY29ucwogICAgIGlmICh3YWl0TW9kZSA9PSBXYWl0Rm9yTWVzc2FnZSAmJiBwcmVkaWNhdGUu
aXNEZWZhdWx0TW9kZSgpICYmIG1fc2hhcmVkVGltZXItPmlzQWN0aXZlKCkpCiAgICAgICAgIHRp
bWVvdXREZWxheSA9IHN0ZDo6bWluKHRpbWVvdXREZWxheSwgbV9zaGFyZWRUaW1lci0+ZmlyZVRp
bWVEZWxheSgpKTsKIAotICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBj
b250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3Jp
cHQoKSkgewogICAgICAgICBzY3JpcHQtPnJlbGVhc2VIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNj
cmlwdC0+YWRkVGltZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KICAg
ICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIHRhc2sgPSBtX21lc3Nh
Z2VRdWV1ZS53YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQocmVzdWx0LCBwcmVkaWNh
dGUsIHRpbWVvdXREZWxheSk7Ci0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGNvbnRleHQt
PnNjcmlwdCgpKSB7CiAgICAgICAgIHNjcmlwdC0+YWNxdWlyZUhlYXBBY2Nlc3MoKTsKICAgICAg
ICAgc2NyaXB0LT5yZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVkVGFzayk7CiAg
ICAgfQpAQCAtMjIzLDEwICsyMjMsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJS
dW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhX
b3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuQ2xlYW51
cFRhc2tzKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIEFTU0VS
VChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRo
cmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgp
ID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAgICAgQVNTRVJUKG1fbWVzc2FnZVF1ZXVlLmtpbGxl
ZCgpKTsKIAogICAgIHdoaWxlICh0cnVlKSB7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBXb3Jr
ZXJSdW5Mb29wOjpwb3N0RGVidWdnZXJUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JiB0YXNrKQogICAgIHBvc3RUYXNrRm9yTW9kZShXVEZNb3ZlKHRhc2spLCBkZWJ1Z2dlck1vZGUo
KSk7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9ybVRhc2soV29ya2VyR2xv
YmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNr
KFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIGlmICgoIWNvbnRl
eHQtPmlzQ2xvc2luZygpICYmIGNvbnRleHQtPnNjcmlwdCgpICYmICFjb250ZXh0LT5zY3JpcHQo
KS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB8fCBtX3Rhc2suaXNDbGVhbnVwVGFzaygpKQog
ICAgICAgICBtX3Rhc2sucGVyZm9ybVRhc2soKmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuaAppbmRleCBhOGM5ZGViZDgwZDgwOTk1NGE3YTlkNjkwZjc3NDA2ZDI1
MjgyNjY4Li5lZTI2YjM3ZjI5OWNhNjk5YzA0YzBiMWM3NDQxNTA0ODA4NzE1N2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgTW9kZVByZWRpY2F0ZTsKLSAgICBjbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZTsKKyAgICBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKICAg
ICBjbGFzcyBXb3JrZXJTaGFyZWRUaW1lcjsKIAogICAgIGNsYXNzIFdvcmtlclJ1bkxvb3AgewpA
QCAtNDcsMTMgKzQ3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfldvcmtlclJ1
bkxvb3AoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEJsb2NraW5nIGNhbGwuIFdhaXRzIGZvciB0
YXNrcyBhbmQgdGltZXJzLCBpbnZva2VzIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIHZvaWQgcnVu
KFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgIHZvaWQgcnVuKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKik7CiAKICAgICAgICAgZW51bSBXYWl0TW9kZSB7IFdhaXRGb3JNZXNzYWdlLCBE
b250V2FpdEZvck1lc3NhZ2UgfTsKIAogICAgICAgICAvLyBXYWl0cyBmb3IgYSBzaW5nbGUgdGFz
ayBhbmQgcmV0dXJucy4KLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUo
V29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlID0gV2FpdEZv
ck1lc3NhZ2UpOwotICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluRGVidWdnZXJN
b2RlKFdvcmtlckdsb2JhbFNjb3BlJik7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2Rl
LCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYpOwogCiAg
ICAgICAgIHZvaWQgdGVybWluYXRlKCk7CiAgICAgICAgIGJvb2wgdGVybWluYXRlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVzc2FnZVF1ZXVlLmtpbGxlZCgpOyB9CkBAIC03Myw3ICs3Myw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgbW9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9kZTsgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICB2b2lk
IHBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgICAgICB2b2lkIHBlcmZv
cm1UYXNrKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7CiAKICAgICAgICAgICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgbV90YXNrOwogICAgICAgICAgICAgU3RyaW5nIG1fbW9k
ZTsKQEAgLTgzLDExICs4MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRl
OgogICAgICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcFNldHVwOwotICAgICAgICBNZXNzYWdlUXVl
dWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVk
aWNhdGUmLCBXYWl0TW9kZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5N
b2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiwgY29uc3QgTW9kZVByZWRpY2F0ZSYsIFdh
aXRNb2RlKTsKIAogICAgICAgICAvLyBSdW5zIGFueSBjbGVhbiB1cCB0YXNrcyB0aGF0IGFyZSBj
dXJyZW50bHkgaW4gdGhlIHF1ZXVlIGFuZCByZXR1cm5zLgogICAgICAgICAvLyBUaGlzIHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBjb250ZXh0IGlzIGNsb3NlZCBvciBsb29wIGhhcyBi
ZWVuIHRlcm1pbmF0ZWQuCi0gICAgICAgIHZvaWQgcnVuQ2xlYW51cFRhc2tzKFdvcmtlckdsb2Jh
bFNjb3BlKik7CisgICAgICAgIHZvaWQgcnVuQ2xlYW51cFRhc2tzKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKik7CiAKICAgICAgICAgYm9vbCBpc0JlaW5nRGVidWdnZWQoKSBjb25zdCB7IHJl
dHVybiBtX2RlYnVnQ291bnQgPj0gMTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3Bw
CmluZGV4IDNkNmUwYjdhZjAxZTIxODVlMWM5ZmY5ZGIwN2ZmZDMwZWRkZDIxNzguLjM5MDhiZGYz
YTI5NmM4MWI2ZjRiYThlOGUwOGUzZmM1ODJlZTVlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXQuY3BwCkBAIC0yOCwyNyArMjgsNzYgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgotI2luY2x1ZGUgIldvcmtsZXRPcHRpb25zLmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgi
CisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2Jh
bFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisjaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoV29ya2xldCk7CiAKLVJlZjxXb3JrbGV0PiBXb3JrbGV0OjpjcmVhdGUoKQorV29ya2xldDo6
V29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtsZXQoKSk7CiB9CiAKLVdvcmts
ZXQ6OldvcmtsZXQoKQorV29ya2xldDo6fldvcmtsZXQoKSA9IGRlZmF1bHQ7CisKK0RvY3VtZW50
KiBXb3JrbGV0Ojpkb2N1bWVudCgpCit7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIv
d29ya2xldHMtMS8jZG9tLXdvcmtsZXQtYWRkbW9kdWxlCit2b2lkIFdvcmtsZXQ6OmFkZE1vZHVs
ZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTFN0cmluZywgV29ya2xldE9wdGlvbnMmJiBvcHRpb25z
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBp
cyBkZXRhY2hlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFVSTCBtb2R1
bGVVUkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwobW9kdWxlVVJMU3RyaW5nKTsKKyAgICBpZiAo
IW1vZHVsZVVSTC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgU3ludGF4RXJyb3IsICJNb2R1bGUgVVJMIGlzIGludmFsaWQiX3MgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAobV9wcm94aWVzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9w
cm94aWVzLmFwcGVuZFZlY3RvcihjcmVhdGVHbG9iYWxTY29wZXMoKSk7CisKKyAgICBhdXRvIHBl
bmRpbmdUYXNrcyA9IFdvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShw
cm9taXNlKSwgbV9wcm94aWVzLnNpemUoKSk7CisgICAgbV9wZW5kaW5nVGFza3NTZXQuYWRkKHBl
bmRpbmdUYXNrcy5jb3B5UmVmKCkpOworCisgICAgZm9yIChhdXRvJiBwcm94eSA6IG1fcHJveGll
cykgeworICAgICAgICBwcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUo
W3BlbmRpbmdUYXNrcyA9IHBlbmRpbmdUYXNrcy5jb3B5UmVmKCksIG1vZHVsZVVSTCA9IG1vZHVs
ZVVSTC5pc29sYXRlZENvcHkoKSwgY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzLCBw
ZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb3duY2FzdDxXb3Jr
bGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmZldGNoQW5kSW52b2tlU2NyaXB0KG1vZHVsZVVSTCwg
Y3JlZGVudGlhbHMsIFtwZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyksIHBlbmRp
bmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3MpLCBleGNlcHRpb24gPSBjcm9z
c1RocmVhZENvcHkoZXhjZXB0aW9uKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5n
QWN0aXZpdHkpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1Rhc2tzLT5hYm9ydChXVEZNb3ZlKCpl
eGNlcHRpb24pKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgcGVuZGluZ1Rhc2tzLT5kZWNyZW1lbnRDb3VudGVyKCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CisgICAgfQorfQorCit2b2lkIFdvcmtsZXQ6OmZpbmlzaFBlbmRpbmdUYXNrcyhXb3Jr
bGV0UGVuZGluZ1Rhc2tzJiB0YXNrcykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChtX3BlbmRpbmdUYXNrc1NldC5jb250YWlucygmdGFza3MpKTsKKworICAgIG1f
cGVuZGluZ1Rhc2tzU2V0LnJlbW92ZSgmdGFza3MpOwogfQogCi12b2lkIFdvcmtsZXQ6OmFkZE1v
ZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYm
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorY29uc3QgY2hhciogV29ya2xl
dDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEFkZCBwcm9w
ZXIgaW1wbGVtZW50YXRpb24uCi0gICAgVU5VU0VEX1BBUkFNKG1vZHVsZVVSTCk7Ci0gICAgcHJv
bWlzZS5yZXNvbHZlKCk7CisgICAgcmV0dXJuICJXb3JrbGV0IjsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oCmluZGV4IGIyYmVkYzY1ODY1Yjc0
ZjVmOTk1NmYwNGNmY2NjM2Y4MzUxOWYyZTEuLjQxNjg2NzRjNzNiMjk5MDliYTYyOTYyNTcyMWIz
ODA1M2UyMjdiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKQEAgLTI1LDI3ICsyNSw0
NSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIlNjcmlw
dFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgIldvcmtsZXRPcHRpb25zLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eTsKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3M7CiAK
LXN0cnVjdCBXb3JrbGV0T3B0aW9uczsKLQotY2xhc3MgV29ya2xldCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKK2NsYXNzIFdvcmtsZXQgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFdvcmtsZXQ+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
V29ya2xldD4gY3JlYXRlKCk7Ci0gICAgdmlydHVhbCB+V29ya2xldCgpID0gZGVmYXVsdDsKKyAg
ICB2aXJ0dWFsIH5Xb3JrbGV0KCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZE1vZHVsZShE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdmlydHVhbCB2b2lkIGFkZE1vZHVsZShjb25z
dCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYpOworCisgICAgdm9pZCBmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdU
YXNrcyYpOworICAgIERvY3VtZW50KiBkb2N1bWVudCgpOworCisgICAgY29uc3QgVmVjdG9yPFJl
ZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+JiBwcm94aWVzKCkgY29uc3QgeyByZXR1cm4gbV9w
cm94aWVzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBXb3JrbGV0KCk7CisgICAgZXhwbGljaXQgV29y
a2xldChEb2N1bWVudCYpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgVmVjdG9yPFJlZjxXb3Jr
bGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpID0gMDsKKworICAgIC8v
IEFjdGl2ZURPTU9iamVjdC4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CisKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4g
bV9wcm94aWVzOworICAgIEhhc2hTZXQ8UmVmUHRyPFdvcmtsZXRQZW5kaW5nVGFza3M+PiBtX3Bl
bmRpbmdUYXNrc1NldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldC5pZGwKaW5kZXggMGI3NzRjMjc0YWFmMjBlMGNjODgzNzcyNzFjNzE2YTAw
ZmFmOWU2MS4uMjkzY2YwNmUxNTU2ZTliNTc3YTJhNGQxOTU4OGQxNjgwNmFiZWU1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKQEAgLTI0LDggKzI0LDEwIEBACiAqLwogCiBbCisg
ICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEdsb2JhbD1Xb3Jr
bGV0LAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uCiBdIGludGVyZmFjZSBXb3JrbGV0IHsKLSAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnRdIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3Ry
aW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CisgICAgUHJv
bWlzZTx1bmRlZmluZWQ+IGFkZE1vZHVsZShVU1ZTdHJpbmcgbW9kdWxlVVJMLCBvcHRpb25hbCBX
b3JrbGV0T3B0aW9ucyBvcHRpb25zKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCAzYjc1ODJhZmZjZDA0YjE0NjI5MGYzYTc0Njg2
NzM0YWM2OTBmZWYyLi5mYjhiYWE1ZGVmYzllODc1M2YwYzQyZWVjZmY5YjY0ZWUzMjM0MDE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAg
LTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0R2xv
YmFsU2NvcGUuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgpAQCAtMzYsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luUG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJX
b3JrZXJFdmVudExvb3AuaCIKLSNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFj
ay5oPgpAQCAtNDcsMTAgKzQ0LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrbGV0R2xvYmFsU2NvcGUpOwogCitXb3JrbGV0
R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCkKKyAg
ICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHRoaXMpKQor
ICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwg
bV91cmwod2luZG93VVJMKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2Jh
bFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRk
UmVzdWx0KTsKKworICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9s
aWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7Cit9CisKIFdvcmtsZXRHbG9iYWxT
Y29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPEpTQzo6Vk0+
JiYgdm0sIFNjcmlwdFNvdXJjZUNvZGUmJiBjb2RlKQogICAgIDogbV9kb2N1bWVudChtYWtlV2Vh
a1B0cihkb2N1bWVudCkpCiAgICAgLCBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRD
b250cm9sbGVyPihXVEZNb3ZlKHZtKSwgdGhpcykpCiAgICAgLCBtX3RvcE9yaWdpbihTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3VybChjb2RlLnVybCgpKQogICAgICwg
bV9jb2RlKFdURk1vdmUoY29kZSkpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBhbGxXb3JrbGV0
R2xvYmFsU2NvcGVzU2V0KCkuYWRkKHRoaXMpOwpAQCAtNjEsNyArNzAsNyBAQCBXb3JrbGV0R2xv
YmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6
OlZNPiYmIHZtLCBTYwogICAgIEFTU0VSVChkb2N1bWVudC5wYWdlKCkpOwogCiAgICAgc2V0U2Vj
dXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShtX3RvcE9yaWdp
bi5jb3B5UmVmKCkpKTsKLSAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxD
b250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IG1fY29kZS51cmwoKSB9LCAqdGhpcykpOworICAg
IHNldENvbnRlbnRTZWN1cml0eVBvbGljeShtYWtlVW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGlj
eT4oVVJMIHsgdGhpcy0+dXJsKCkgfSwgKnRoaXMpKTsKIH0KIAogV29ya2xldEdsb2JhbFNjb3Bl
Ojp+V29ya2xldEdsb2JhbFNjb3BlKCkKQEAgLTExMyw3ICsxMjIsOCBAQCBTdHJpbmcgV29ya2xl
dEdsb2JhbFNjb3BlOjp1c2VyQWdlbnQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKIHZvaWQgV29y
a2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSgpCiB7Ci0gICAgbV9zY3JpcHQtPmV2YWx1YXRlKG1f
Y29kZSk7CisgICAgaWYgKG1fY29kZSkKKyAgICAgICAgbV9zY3JpcHQtPmV2YWx1YXRlKCptX2Nv
ZGUpOwogfQogCiBib29sIFdvcmtsZXRHbG9iYWxTY29wZTo6aXNKU0V4ZWN1dGlvbkZvcmJpZGRl
bigpIGNvbnN0CkBAIC0xMzUsNyArMTQ1LDcgQEAgVVJMIFdvcmtsZXRHbG9iYWxTY29wZTo6Y29t
cGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwsIEZvcmNlVVRGOCkgY29uc3QKIHsKICAgICBpZiAo
dXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7Ci0gICAgcmV0dXJuIFVSTChtX2Nv
ZGUudXJsKCksIHVybCk7CisgICAgcmV0dXJuIFVSTCh0aGlzLT51cmwoKSwgdXJsKTsKIH0KIAog
dm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVy
LCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQpAQCAt
MTcxLDUgKzE4MSwxMSBAQCBSZWZlcnJlclBvbGljeSBXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZmVy
cmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4gUmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXI7
CiB9CiAKK3ZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdChjb25z
dCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50YXRpb24uCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5oCmluZGV4IDI1ZDU0OWFjNGEwYWE2ZmY3NTI4NzU1ZDcwNDdjODE0ZWU3ZGM0MDQuLjk4
MTQxNTlkZTJiNTAzYTgwOGM4MDg3MDQyZjY3MzUzNjdiZmYzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0yNiwzMCArMjYsMzIgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
ICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVu
dExvb3BUYXNrR3JvdXA7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7Ci1jbGFzcyBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjsKIAogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZSB7
IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNsYXNzIFdvcmtsZXRHbG9i
YWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxTY29wZT4sIHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7
CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xv
YmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmts
ZXRHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNjb3Bl
KCk7CkBAIC01NywxMSArNTksMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFdvcmtsZXRHbG9iYWxT
Y29wZXNTZXQgPSBIYXNoU2V0PGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSo+OwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0JiBhbGxXb3JrbGV0R2xvYmFs
U2NvcGVzU2V0KCk7CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICB2aXJ0dWFs
IGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogCiAg
ICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExvb3AoKSBmaW5hbDsKIAotICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2RlLnVybCgpOyB9CisgICAgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQogCiAgICAgdm9pZCBldmFs
dWF0ZSgpOwogCkBAIC03MCw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVk
OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICBXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0
KCk7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCkBAIC03OSw2ICs4NiwxMCBAQCBwdWJs
aWM6CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CiAKKyAgICAvLyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS4KKyAgICBU
aHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRy
OyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQ2xvc2lu
ZzsgfQorCiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgYm9vbCBpc1NlY3VyZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogCkBAIC04Niw3ICs5NywxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZUZvckRlc3RydWN0aW9uKCk7CiAKKyAgICB2b2lkIGZldGNoQW5kSW52b2tlU2NyaXB0
KGNvbnN0IFVSTCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CisgICAgV29ya2xl
dEdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgd2luZG93VVJMKTsKICAgICBXb3JrbGV0R2xvYmFsU2Nv
cGUoRG9jdW1lbnQmLCBSZWY8SlNDOjpWTT4mJiwgU2NyaXB0U291cmNlQ29kZSYmKTsKICAgICBX
b3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgV29ya2xldEdsb2JhbFNjb3BlJikgPSBkZWxldGU7CiAg
ICAgV29ya2xldEdsb2JhbFNjb3BlKFdvcmtsZXRHbG9iYWxTY29wZSYmKSA9IGRlbGV0ZTsKQEAg
LTEzNiw4ICsxNTAsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V29ya2VyRXZlbnRMb29wPiBt
X2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dyb3VwPiBtX2Rl
ZmF1bHRUYXNrR3JvdXA7CiAKKyAgICBVUkwgbV91cmw7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3Mg
bV9qc1J1bnRpbWVGbGFnczsKLSAgICBTY3JpcHRTb3VyY2VDb2RlIG1fY29kZTsKKyAgICBPcHRp
b25hbDxTY3JpcHRTb3VyY2VDb2RlPiBtX2NvZGU7CisgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC0xNDUsNCArMTYxLDMgQEAg
cHJpdmF0ZToKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V29ya2xldEds
b2JhbFNjb3BlKQogc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2Nv
cGUoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAppbmRleCBkNzU5ZjBjZTFk
MTZmODY5MTg2MDEyNzc2ZjBkYjE2YjYxYmFhNDc4Li5iNjMyMjRkZDFlYTE4YzAzYzA1MzIzYjcz
ZWE1ODViZTM5MmRjYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5pZGwKQEAgLTI2LDcgKzI2LDYgQEAKIFsKICAgICBDdXN0b21Qcm94eVRvSlNP
YmplY3QsCiAgICAgRXhwb3NlZD1Xb3JrbGV0LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9Q1NTUGFp
bnRpbmdBUEksCiAgICAgQ29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSSwKICAgICBKU0xlZ2Fj
eVBhcmVudD1KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UsCiAgICAgSW1wbGljaXRUaGlzLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHku
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWFjNWQ5MWNjN2QwMjQyMGI1ZmFmZjIxOTFjMGVlZjhmZjlhNWQ3ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVBy
b3h5LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOworCitj
bGFzcyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4geworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmts
ZXRHbG9iYWxTY29wZVByb3h5KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBib29sIHBvc3RU
YXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGlu
Z1Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJmZmU1ZDc2MWFmNDZmMjYxNDExNzkwNGFjMTA0YzMwNDkxMTQ1ZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGlu
Z1Rhc2tzLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldvcmtsZXRQ
ZW5kaW5nVGFza3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGVuZGluZ1Rh
c2tzOjpXb3JrbGV0UGVuZGluZ1Rhc2tzKFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQorICAgIDogbV93b3JrbGV0KG1ha2VX
ZWFrUHRyKHdvcmtsZXQpKQorICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCisgICAg
LCBtX2NvdW50ZXIoY291bnRlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworfQor
Cit2b2lkIFdvcmtsZXRQZW5kaW5nVGFza3M6OmFib3J0KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9PSAt
MSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb3VudGVyID0gLTE7CisgICAgbV9wcm9taXNl
LnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAg
IG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tzKCp0aGlzKTsKK30KKwordm9pZCBXb3JrbGV0
UGVuZGluZ1Rhc2tzOjpkZWNyZW1lbnRDb3VudGVyKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLS1tX2NvdW50ZXI7CisgICAgaWYgKCFtX2NvdW50ZXIpIHsKKyAgICAgICAgbV9wcm9taXNl
LnJlc29sdmUoKTsKKyAgICAgICAgaWYgKG1fd29ya2xldCkKKyAgICAgICAgICAgIG1fd29ya2xl
dC0+ZmluaXNoUGVuZGluZ1Rhc2tzKCp0aGlzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3Mu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MzNkNmJiYWJlMGU5YjkzZTI4M2EzMjg2NzE1Y2E4OWRjMjZjMDljCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXQ7CisKKy8vIGh0dHBz
Oi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jcGVuZGluZy10YXNrcy1zdHJ1Y3QK
K2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3MgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
V29ya2xldFBlbmRpbmdUYXNrcz4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2xldFBl
bmRpbmdUYXNrcz4gY3JlYXRlKFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV29ya2xldFBlbmRpbmdUYXNrcyh3b3JrbGV0LCBXVEZNb3ZlKHByb21pc2UpLCBj
b3VudGVyKSk7CisgICAgfQorCisgICAgdm9pZCBhYm9ydChFeGNlcHRpb24mJik7CisgICAgdm9p
ZCBkZWNyZW1lbnRDb3VudGVyKCk7CisKK3ByaXZhdGU6CisgICAgV29ya2xldFBlbmRpbmdUYXNr
cyhXb3JrbGV0JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYsIGludCBjb3VudGVyKTsKKwor
ICAgIFdlYWtQdHI8V29ya2xldD4gbV93b3JrbGV0OworICAgIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiBtX3Byb21pc2U7CisgICAgaW50IG1fY291bnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmNwcAppbmRleCAyMGE2Zjg1NjE4NThhZGZiZTJlMmJjMThlYmY3MTUwYjk3YWQx
NGY4Li4xN2RmNWUxZjNjZjA2NTcxNGJjZWY3NWVkODVmY2FkNTM4ZjZlODBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBA
IC0yNiw4ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCisjaW5j
bHVkZSAiSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5o
IgpAQCAtNTYsNiArNTUsMTEgQEAgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyKFJlZjxWTT4mJiB2bSwgV29ya2xldEdsb2JhbFNjb3AKICAgICBKU1ZNQ2xp
ZW50RGF0YTo6aW5pdE5vcm1hbFdvcmxkKG1fdm0uZ2V0KCkpOwogfQogCitXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENvbnRyb2xsZXIoV29ya2xldEdsb2JhbFNjb3BlKiB3
b3JrbGV0R2xvYmFsU2NvcGUpCisgICAgOiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihWTTo6Y3Jl
YXRlKCksIHdvcmtsZXRHbG9iYWxTY29wZSkKK3sKK30KKwogV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6On5Xb3JrbGV0U2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2so
dm0oKSk7CkBAIC0xNDUsMTAgKzE0OSwxOSBAQCB2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojppbml0U2NyaXB0KCkKICAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKICAgICAgICAg
cmV0dXJuOwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgaWYgKGlzPFBhaW50
V29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsKICAgICAgICAgaW5p
dFNjcmlwdFdpdGhTdWJjbGFzczxKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlUHJvdG90eXBlLCBK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlLCBQYWludFdvcmtsZXRHbG9iYWxTY29wZT4oKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAg
ICBpZiAoaXM8QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkg
eworICAgICAgICBpbml0U2NyaXB0V2l0aFN1YmNsYXNzPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVQcm90b3R5cGUsIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUsIEF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlPigpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KQEAgLTE5Niw1ICsyMDksNjIgQEAgdm9pZCBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6c2V0RXhjZXB0aW9uKEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24pCiAgICAg
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7CiB9
CiAKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnJlbGVhc2VIZWFwQWNjZXNzKCkKK3sK
KyAgICBtX3ZtLT5oZWFwLnJlbGVhc2VBY2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MoKQoreworICAgIG1fdm0tPmhlYXAuYWNxdWly
ZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjphZGRUaW1lclNl
dE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxi
YWNrIGNhbGxiYWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BU
aW1lciogdGltZXIpIHsKKyAgICAgICAgaWYgKCF0aW1lcikKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdGltZXItPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9
OworCisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7
CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7Cisg
ICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmRlZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwordm9p
ZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaykKK3sK
KyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7Cisg
ICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRpbWVyLT5y
ZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsKKworICAgIHByb2Nl
c3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NU
aW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1l
cihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlw
dENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24oKQoreworICAgIGlmICht
X2lzVGVybWluYXRpbmdFeGVjdXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHsKKyAgICAg
ICAgLy8gVGhlIG11dGV4IHByb3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQg
b25jZQorICAgICAgICAvLyB0ZXJtaW5hdGlvbiBpcyBzY2hlZHVsZWQsIGlzVGVybWluYXRpbmdF
eGVjdXRpb24oKSB3aWxsCisgICAgICAgIC8vIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGF0IGxleGlj
YWxHbG9iYWxPYmplY3Qgd2hlbiBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAg
ICAgIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiA9IHRydWU7CisgICAgfQorICAgIG1fdm0tPm5v
dGlmeU5lZWRUZXJtaW5hdGlvbigpOworfQorCitib29sIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojppc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTZWUgY29tbWVudHMg
aW4gc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbiByZWdhcmRpbmcgbXV0ZXggdXNhZ2UuCisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7Cisg
ICAgcmV0dXJuIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuaAppbmRleCBlMzZkMmEyNDJiZjU0NjRmYTI3Y2YzZGE5YWI1Mjg0ZjAw
MDRkNmVlLi42ZDQzY2U1ZjlmZmQyYTcwYWYwYmY2ZTVhZWU1NGNkOGZhYzcyZjJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAg
LTI1LDggKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKLQorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+
CkBAIC00Niw5ICs0NSwxMSBAQCBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIGNsYXNzIFdv
cmtsZXRHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50OwogCi1jbGFzcyBX
b3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CisvLyBGSVhNRTogV2Ugc2hvdWxkIHNoYXJlIG1vcmUg
Y29kZSB3aXRoIFdvcmtlclNjcmlwdENvbnRyb2xsZXIuCitjbGFzcyBXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlciA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIGV4cGxpY2l0IFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyKFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAgIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJl
ZjxKU0M6OlZNPiYmLCBXb3JrbGV0R2xvYmFsU2NvcGUqKTsKICAgICB+V29ya2xldFNjcmlwdENv
bnRyb2xsZXIoKTsKIApAQCAtNjQsNiArNjUsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJs
ZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlzYWJsZVdlYkFz
c2VtYmx5KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAorICAgIHZvaWQgcmVsZWFzZUhl
YXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CisK
KyAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRp
bWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVGltZXJTZXRO
b3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFj
aykgZmluYWw7CisKKyAgICB2b2lkIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24oKTsKKyAg
ICBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQg
ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRp
b25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbiwgU3Ry
aW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIApAQCAtODcsNyArOTcs
OCBAQCBwcml2YXRlOgogICAgIFdvcmtsZXRHbG9iYWxTY29wZSogbV93b3JrbGV0R2xvYmFsU2Nv
cGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtsZXRDb25zb2xlQ2xpZW50PiBtX2NvbnNvbGVD
bGllbnQ7CiAgICAgSlNDOjpTdHJvbmc8SlNXb3JrbGV0R2xvYmFsU2NvcGU+IG1fd29ya2xldEds
b2JhbFNjb3BlV3JhcHBlcjsKKyAgICBtdXRhYmxlIExvY2sgbV9zY2hlZHVsZWRUZXJtaW5hdGlv
bkxvY2s7CisgICAgYm9vbCBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24geyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcAppbmRleCA2YTEwMWMzOTU5M2NjNGMxNTRjNzQ1ZjZkNzk3MzdhMDJhOTIzZjZkLi4w
YjlhYjFkY2UzNGE1MjBkODJlMmZhZDVmNWQwNmE4NjllZjc0ZDk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICBzdG9w
KCk7CiAgICAgfQogCi0gICAgdm9pZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsg
fQorICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KHsgfSk7IH0KICAgICB2
b2lkIHN0b3AoKSB7IG1fZGVzdGluYXRpb24tPnN0b3AoKTsgfQogICAgIGJvb2wgaXNQbGF5aW5n
KCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KICAgICB1bnNpZ25lZCBm
cmFtZXNQZXJCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5mcmFtZXNQZXJC
dWZmZXIoKSA7IH0KQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogCiAgICAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uOwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyIG1faWQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
IG1fZGVzdGluYXRpb247CisgICAgUmVmUHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRp
b247CiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJp
bmdHcmFjZWZ1bFNodXRkb3duOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
Y3BwCmluZGV4IDA2OTQ1YmFmZDVkMTg5YzdhMGY5YzcyNDAyYmI4ODlkYzgwN2Y2ZjQuLjgyMTM4
MDBiOWYxMGM1ODI2MGUwN2E3OTBmN2NiMjBhN2UwZWEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5jcHAKQEAgLTQzLDEwICs0MywxMCBAQCB1c2luZyBBdWRpb0J1cyA9IFdl
YkNvcmU6OkF1ZGlvQnVzOwogdXNpbmcgQXVkaW9EZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb247CiB1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2Fs
bGJhY2s7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAorUmVmPEF1
ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssCiAgICAgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1
bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoY2FsbGJhY2ss
IGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgc2FtcGxlUmF0ZSkpOwogfQogCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTc3
LDggKzc3LDkgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5KCkKICAgICB9KTsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHk6OnN0YXJ0KCkKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFydChG
dW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVh
ZCkKIHsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbihtX2Rl
c3RpbmF0aW9uSUQpLAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKQEAg
LTg5LDE5ICs5MCwzMSBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgp
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwK
ICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVk
aW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKKyAgICBtX2Rpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQgPSBudWxscHRyOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRp
b0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHJlbmRlcmluZyBvbiB0aGUgbWFpbiB0aHJlYWQg
d2hlbiBBdWRpb1dvcmtsZXQgaXMgbm90IGFjdGl2ZSwgd2hpY2ggaXMgbGlrZWx5IG5vdCBhIGdv
b2QgaWRlYS4KKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChhdWRpb0J1
c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxC
dWZmZXJzLnNpemUoKSk7CiAgICAgYXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVk
aW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJv
Y2VzcywgZmFsc2UpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEu
Y2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVs
TWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCks
IGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOwogCi0gICAgbV9jYWxsYmFjay5yZW5kZXIo
MCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvQnVz
RGF0YS5vdXRwdXRQb3NpdGlvbik7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIGF1
dG8gZG9SZW5kZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhdWRp
b0J1cyA9IFdURk1vdmUoYXVkaW9CdXMpLCBmcmFtZXNUb1Byb2Nlc3MgPSBhdWRpb0J1c0RhdGEu
ZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiA9IGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3Np
dGlvbl0geworICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgZnJh
bWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7CisgICAgfTsKKyAgICBpZiAobV9kaXNwYXRj
aFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbZG9S
ZW5kZXIgPSBXVEZNb3ZlKGRvUmVuZGVyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRvUmVuZGVyKCk7Cisg
ICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG9SZW5kZXIoKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaAppbmRleCBhZGE2ZmVlZmYzNzQzMGYzYzRkZDM3ZjEzYzdlM2E0
ZTc2NmEzOWRhLi45MDdlY2Y1YTc3ZjQyYjk0Nzg5MGJkZjNhMTdlMThlY2ZiNWFhNWY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CiAgICAgdXNpbmcgQXVkaW9J
T0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOwogCi0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAg
IHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNv
bnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAog
ICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5z
aWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgflJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpOwpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgotICAgIHZvaWQgc3Rh
cnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9p
ZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKICAgICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1f
aXNQbGF5aW5nOyB9CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fc2FtcGxlUmF0ZTsgfQpAQCAtNzMsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fZnJhbWVzUGVyQnVmZmVyIHsgMCB9OwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2Ug
fTsKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5k
ZXggMmU4NjFhMWU0ZTMxZTE0NzgyYTJiOWU4MzE5OGMxNjdhNTk0NjExMy4uZDVhZWYxNTM0YWQy
MzY1ZDIxMzdhMTdiNmY2ZDQ0ZTFlZjg1MTllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC00NSw3ICs0
NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3Ry
YXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLAorUmVmPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdl
Yk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3ku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
CmluZGV4IDgxN2M0YzI5YjE3MzJmNDVmOTBlMjE1NWQ2NWNlZTg0N2MxN2JlZTIuLjZiN2I5Y2U2
MDNhODczOWU3MWQ5MDQ3NWZjYzc4NzI2OGY2ZDlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCkBAIC0zOSw3ICsz
OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisgICAgUmVmPFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxi
YWNrJiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNjNmJj
YTdiNjUzYTY1MjdiNy4uZWJiYjNiZWE2ZWRiYjQ3YmNiNGUyZDBiMjk3ZmNkMDVlYmE2MzI5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtNjksNyArNjksNyBAQCBQYXN0ZWJv
YXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0
ZWd5KCkKIGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVn
eSB7CiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNr
JiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIFJlZjxBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICAgICAgdW5zaWduZWQgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRp
b246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCmluZGV4IGRmNGExZjc4NTA0ZGJlMjMwYTk3N2U5N2ZkMjU5ZDI0ZTRmOTIw
MzEuLmUwMzQyM2Q3NTNjYjE5ODBlZTNlYjg4OTJmYTI4NTFlZTQ5NjI1MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNjUsNyArNjUsNyBAQCBQYXN0ZWJvYXJkU3RyYXRl
Z3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIGNs
YXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2
YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0
ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmluZGluZ3MvbWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGlu
Z3MvbWFpbi5weQppbmRleCAzMWFlYzM4MmU3YmEzYTNhYmY5ZjI3MTIyZmI4NGUyMDU3ODgwN2M0
Li4xZDA5MTNiNGVmMDU5YTRlMWU3OTA2YzVlYjQ5ZGVkYjY2NDY0NTk1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIEJpbmRp
bmdzVGVzdHM6CiAgICAgICAgICAgICBleGl0X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICBy
ZXR1cm4gZXhpdF9jb2RlCiAKLSAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBz
dXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVw
ZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2Zp
bGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1
Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRl
ZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29y
a2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUpOgogICAgICAgICBpZGxfZmlsZXNfbGlzdCA9IHRlbXBmaWxlLm1rc3RlbXAo
KQogICAgICAgICBmb3IgaW5wdXRfZmlsZSBpbiBvcy5saXN0ZGlyKGlucHV0X2RpcmVjdG9yeSk6
CiAgICAgICAgICAgICAobmFtZSwgZXh0ZW5zaW9uKSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRf
ZmlsZSkKQEAgLTk4LDYgKzk4LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAg
ICAgICctLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzZXJ2aWNl
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS13
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tcGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlJywgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsCisgICAgICAgICAgICAgICAnLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUnLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAg
ICAgICAgICAgICAgICctLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCB0ZXN0Z2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS12YWxpZGF0ZUFn
YWluc3RQYXJzZXInXQogCkBAIC0yMDEsNiArMjAyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoK
ICAgICAgICAgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9
ICdTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlbmFtZSA9ICdQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwnCisgICAgICAgIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFt
ZSA9ICdBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHRl
c3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQmluZGluZ1Rlc3RHbG9iYWxD
b25zdHJ1Y3RvcnMuaWRsJwogCiAgICAgICAgIHdvcmtfZGlyZWN0b3J5ID0gdGVtcGZpbGUubWtk
dGVtcCgpCkBAIC0yMTMsOSArMjE1LDEwIEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
IHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9p
bih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGly
ZWN0b3J5LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQog
ICAgICAgICB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpv
aW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2Rp
cmVjdG9yeSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAg
ICAgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpv
aW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2Rp
cmVjdG9yeSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQor
ICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBh
dGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5w
dXRfZGlyZWN0b3J5LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5h
bWUpCiAgICAgICAgIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGgu
am9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRf
ZGlyZWN0b3J5LCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogCi0gICAg
ICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0
b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVf
ZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUp
OgorICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0
X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21h
a2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAg
ICAgICAgICBwcmludCgnRmFpbGVkIHRvIGdlbmVyYXRlIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVu
Y3kgZmlsZS4nKQogICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSh3b3JrX2RpcmVjdG9yeSkKICAg
ICAgICAgICAgIHJldHVybiAtMQpAQCAtMjM1LDYgKzIzOCw4IEBAIGNsYXNzIEJpbmRpbmdzVGVz
dHM6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAg
ICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3Rv
cnksIGlucHV0X2RpcmVjdG9yeSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKKyAg
ICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3Jr
X2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUpOgorICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBG
YWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29w
ZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBG
YWxzZQogCg==
</data>
<flag name="commit-queue"
          id="426058"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410189</attachid>
            <date>2020-09-30 19:00:57 -0700</date>
            <delta_ts>2020-09-30 20:53:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930190056.patch</filename>
            <type>text/plain</type>
            <size>164784</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5iZGNmNzc5YmRiZmQwODY5NjYwMzI1MmJmZTcxMjIzYWI3NjQyMzExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODEsMTAgKzgxLDExIEBAIEFzeW5jQ2xpcGJvYXJk
QVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NPQSkiIDogdHJ1ZQogICAgICAgZGVmYXVs
dDogZmFsc2UKIAotQXVkaW9Xb3JrbGV0RW5hYmxlZDoKK0F1ZGlvV29ya2xldEFQSUVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJXZWJBdWRpbyBBdWRpb1dvcmts
ZXQgQVBJIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25k
aXRpb246IEVOQUJMRShXRUJfQVVESU8pCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdh
Y3k6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDRkZmNlYmYyNDQ1YTZjNGE1ZTk2MzQ4NWU0NjM1
NTQ2Zjc2Y2Y5MGUuLjE5NDM4MDIzYzQzNThiMDYwNjEwM2M2NWM0N2Q1ODlmN2VlNWMzNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NzQsNiArNDc0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtMTc2Niw2ICsx
NzY3LDcgQEAgc2V0KERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS8KIHNldChTRVJWSUNFV09SS0VSR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFBBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Q
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCitzZXQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIAogc2V0KFdlYkNv
cmVfSU5URVJGQUNFX0xJQlJBUklFUyBXZWJDb3JlKQogc2V0KFdlYkNvcmVfSU5URVJGQUNFX0lO
Q0xVREVfRElSRUNUT1JJRVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElS
fSkKQEAgLTE5NTEsNyArMTk1Myw4IEBAIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5n
cwogICAgICAgICAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0RFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtTRVJWSUNFV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0td29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSAke1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KLSAgICAgICAgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtQ
QUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCisgICAgICAgIC0tcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFM
U0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CisgICAgICAgIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICR7QVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9KQogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVBFTkRFTkNJRVMgV2ViQ29yZUJpbmRpbmdz
KQogCiBpZiAoRU5BQkxFX1dFQklOU1BFQ1RPUlVJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNGZjMDU0NGY5Y2Q5NzYxYWUwMWRjYjY1
MTQ4YzM0YTM4MmJlYWJkOS4uYThkY2Y5Njk4MmE0MDgyOTk3NDU4MjU4MzRiNzE2MGI0NWQyN2Y1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0zMzAsNiArMzMwLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCA0NDIxNjA0NjdkZTE2NWU3NWQ1NDQ5NzUwZmRkYTEzY2Vk
Yzc0NjgwLi4zNjc5NWVhNDEzMzhlZGRhODRhZDI4MzRmNjg4ZGVkMzIwNGRlMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMSw0
ICsxLDUgQEAKICMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgZ2VuZXJhdGUteGNmaWxl
bGlzdHMgc2NyaXB0LgorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
Q1NTUHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaApAQCAtMjA3LDYgKzIwOCw4IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291
cmNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1RyYWNrTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvV29ya2xldE5vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGUuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRiMWQ2YWE0NjRhM2EyMDE0ODU5NjFl
ZjcxMTUzNjE1N2UzZjBhYjYuLjJjMWMxMDg5YWQ1YWI2Yjc1OWY1MDZkYzFhZTkwM2NmZjIwNjA2
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDA3LDYgKzQwNyw3IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvVGltZXN0YW1wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIFwKQEAgLTE3NDgsNiArMTc0OSw3IEBAIERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1CiBTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUgPSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsCiBQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAorQVVESU9XT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwKIElETF9GSUxFU19UTVAgPSBpZGxfZmlsZXMudG1wCiBJRExfQVRUUklCVVRFU19GSUxF
ID0gJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgogCkBAIC0x
NzY4LDEzICsxNzcwLDE0IEBAIElETF9JTlRFUk1FRElBVEVfRklMRVMgPSBcCiAgICAgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoU0VSVklD
RVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKLSAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKQorICAgICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIFwKKyAgICAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKQogIwogSURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQo
SURMX0lOVEVSTUVESUFURV9GSUxFUykpCiAKICQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNf
VE1QKSAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNv
U3Vic3BhY2VzSGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93
Q29uc3RydWN0b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChX
T1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzICQoU1VQUExFTUVOVEFMX01BS0VG
SUxFX0RFUFMpCisJJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTKSBMQU5H
VUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVOYW1lc0xpc3QgJChJRExfRklMRVNfVE1QKSAtLWlk
bEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSAkKFNVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0taXNvU3Vic3BhY2Vz
SGVhZGVyRmlsZSAkKElTT19TVUJTUEFDRVNfSEVBREVSX0ZJTEUpIC0td2luZG93Q29uc3RydWN0
b3JzRmlsZSAkKFdJTkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1k
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChERURJQ0FURURXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoQVVESU9XT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBz
ICQoU1VQUExFTUVOVEFMX01BS0VGSUxFX0RFUFMpCiAJJChERUxFVEUpICQoSURMX0ZJTEVTX1RN
UCkKIAogSlMlLmNwcCBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykgJChJRExf
QVRUUklCVVRFU19GSUxFKSAkKElETF9JTlRFUk1FRElBVEVfRklMRVMpICQoRkVBVFVSRV9BTkRf
UExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCmluZGV4IGJlZDdiNDBkYmMzMmRiMzIyZTc5
YjY4NGRhNTBiMGQ5NzZhZWYwYzYuLjJhMmMxMTc1NjhjNGI0Mzc3YjQ2MTQ1MjYxZTM0Y2ExNWEz
M2M5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
RElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9QXVkaW9Xb3JrbGV0QVBJLAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIFNraXBWVGFi
bGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKaW5kZXggYTk5NGEyNGZhMWYzODFkMjkw
Y2RjOTA2Y2NiMWU4NzEwY2NlYmVmYy4uZmNiOTlhNjc2ZmJhNTI3ZmNjNTE0Y2QxODUyYzI2YzQ1
ZTBiMWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmNwcApAQCAtMzEsMTUgKzMxLDM0IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNp
bmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKIAorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEF1ZGlvV29ya2xldD4gQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoKQorUmVmPEF1ZGlvV29ya2xldD4gQXVkaW9Xb3JrbGV0OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8gd29ya2xldCA9IGFkb3B0UmVmKCpu
ZXcgQXVkaW9Xb3JrbGV0KGRvY3VtZW50KSk7CisgICAgd29ya2xldC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHdvcmtsZXQ7Cit9CisKK0F1ZGlvV29ya2xldDo6QXVkaW9Xb3JrbGV0
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IFdvcmtsZXQoZG9jdW1lbnQpCit7Cit9CisKK1Zl
Y3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBBdWRpb1dvcmtsZXQ6OmNyZWF0ZUds
b2JhbFNjb3BlcygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0KTsK
KyAgICAvLyBXZWJBdWRpbyB1c2VzIGEgc2luZ2xlIGdsb2JhbCBzY29wZS4KKyAgICByZXR1cm4g
eyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRlKCp0aGlzKSB9OwogfQogCi1BdWRp
b1dvcmtsZXQ6OkF1ZGlvV29ya2xldCgpCitBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogQXVk
aW9Xb3JrbGV0Ojpwcm94eSgpIGNvbnN0CiB7CisgICAgYXV0byYgcHJveGllcyA9IHRoaXMtPnBy
b3hpZXMoKTsKKyAgICBpZiAocHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBkb3duY2FzdDxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eT4ocHJv
eGllcy5maXJzdCgpLnB0cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKaW5kZXggNTUxMTVl
MzEyYTk2ZGZjOGI1M2RiYzcwYjA5NDA1NmIxMzI5NjZkYi4uODAzZmJiNzRkOWQ2MDNlMzY0ZGQ0
M2Y2OGJmODU0OTE0MTI5ODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldC5oCkBAIC0zMywxMiArMzMsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1dvcmtsZXQgOiBwdWJsaWMgV29ya2xldCB7CitjbGFzcyBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0IGZpbmFsIDogcHVi
bGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0PiBjcmVh
dGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKERvY3VtZW50Jik7CisK
KyAgICBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogcHJveHkoKSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICBBdWRpb1dvcmtsZXQoKTsKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXQoRG9jdW1l
bnQmKTsKKworICAgIC8vIFdvcmtsZXQuCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuaWRsCmluZGV4IGJjNWVhOGYwZDVmN2ZiYjRkMzZlYzg2MjhhOTNiYTE0NGFlZGZhZDcu
LjU2MDNmNzhkZjZhYjMyYTFlY2VjOGY4NmYwMjhjMTkzMDFiMmM0ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKQEAgLTI4LDcgKzI4
LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0
aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldEFQSSwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICBTZWN1
cmVDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZjI2MGUyNmZkMTg4
OGE2ZTRjOTVlNzg5NDU2NmQ5OTdmNjM3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVh
ZC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKTsKKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
KEF1ZGlvV29ya2xldFRocmVhZCYgdGhyZWFkLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKKyAgICA6IFdvcmtsZXRHbG9iYWxTY29wZShwYXJhbWV0ZXJzLndpbmRvd1VSTCkK
KyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
K30KKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6On5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgp
ID0gZGVmYXVsdDsKKworVGhyZWFkKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6dW5kZXJseWlu
Z1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLT50aHJlYWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTViZmE0Y2VjNmFmZGJmMmYzMmNlMzk2YTdkYmQy
MzNhZjkxNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworc3RydWN0
IFdvcmtsZXRQYXJhbWV0ZXJzOworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+IGNyZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3Qg
V29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSh0aHJlYWQsIHBhcmFtZXRlcnMpKTsK
KyAgICB9CisgICAgfkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7CisKKyAgICBUaHJlYWQqIHVu
ZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVy
cyYpOworCisgICAgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVhZD4gbV90aHJlYWQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpCitzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1
cm4gaXM8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxX
ZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmlzQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUoKTsgfQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1N2JjYzBhOWY1
ZTcwNDliNTY4OGU3NWI2NzgzNWVkOGQyYzM2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFeHBvc2VkPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldEFQSSwKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCisgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0LAorICAgIEltcGxpY2l0VGhpcywKKyAgICBJc0ltbXV0YWJsZVByb3Rv
dHlwZUV4b3RpY09iamVjdCwKKyAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdE9u
UHJvdG90eXBlLAorICAgIEdsb2JhbD0oV29ya2xldCxBdWRpb1dvcmtsZXQpLAorXSBpbnRlcmZh
Y2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIC8v
IEltcGxlbWVudCBBUEkuCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzIxNjE0YmJjYTJiYzlhMDVmYjBlOTRiYWYxY2ViYjY4YzkzYWEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCisjaW5jbHVk
ZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICA6IG1fd29ya2xl
dChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fd29ya2xldFRocmVhZChBdWRpb1dvcmts
ZXRUaHJlYWQ6OmNyZWF0ZSh7IHdvcmtsZXQuZG9jdW1lbnQoKS0+dXJsKCkgfSkpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fd29ya2xldFRocmVhZC0+c3RhcnQoKTsK
K30KKworQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6On5BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpID0gZGVmYXVsdDsKKworYm9vbCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9z
dFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBtX3dvcmtsZXRUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE3YWRmNGYy
ODM4MDNhYjk0NTEwM2Q5ZjMyYTZmODc5MWJhMTQ5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0OworY2xhc3MgQXVkaW9Xb3Jr
bGV0VGhyZWFkOworCitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSA6IHB1YmxpYyBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eT4gY3JlYXRlKEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
KHdvcmtsZXQpKTsKKyAgICB9CisKKyAgICB+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsK
KworICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gdGhlIG1haW4gdGhyZWFkIHRvIHBvc3Qg
dGFzayBiYWNrIHRvIHRoZSB3b3JrbGV0IHRocmVhZC4KKyAgICBib29sIHBvc3RUYXNrRm9yTW9k
ZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29u
c3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmKTsKKworICAgIGJvb2wgaXNBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAg
IFdlYWtQdHI8QXVkaW9Xb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgUmVmPEF1ZGlvV29ya2xldFRo
cmVhZD4gbV93b3JrbGV0VGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5KQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9iYWxT
Y29wZVByb3h5JiBwcm94eSkgeyByZXR1cm4gcHJveHkuaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNTYyNzE0ODY2M2YwNDIxOGIxZTU1MDUxNzViMDQ5
NWE1NDY5MTIwNi4uNmIwYzFhMDZlNjAxNWEzZDdiMmNiNmZmYWM3NDkyYmY3OTQ0ZDVjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8s
Ci0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1BdWRpb1dvcmtsZXRBUEksCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRv
SlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAppbmRleCBh
OWUxOWI2OTVlMDZmMjMxMzg4ZTczNWIyYjYwNTI5NzlmMTFmOTA1Li4zMzljNzZmNGIxOGMwOWYy
NTQyYzdhOTYxZTgxNjBhN2I0Mjg5ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbApAQCAtMjgs
NyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRC
eVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0
QVBJLAogXSBkaWN0aW9uYXJ5IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zIDogQXVkaW9Ob2RlT3B0
aW9ucyB7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0cyA9IDE7CiAgICAgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5Nzdm
Mzk5NDRmMmJlY2I3NjhjODk1NmNhZjVlZWEyYWQ4OGEwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKQEAg
LTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmgiCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGFyYW1ldGVycyBXb3Jr
bGV0UGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV29ya2xl
dFBhcmFtZXRlcnMgeworICAgICAgICB3aW5kb3dVUkwuaXNvbGF0ZWRDb3B5KCkKKyAgICB9Owor
fQorCitBdWRpb1dvcmtsZXRUaHJlYWQ6OkF1ZGlvV29ya2xldFRocmVhZChjb25zdCBXb3JrbGV0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICA6IG1fcGFyYW1ldGVycyhwYXJhbWV0ZXJzLmlz
b2xhdGVkQ29weSgpKQoreworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6c3RhcnQoKQor
eworICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrKTsKKworICAgIFJlZjxUaHJlYWQ+IHRocmVhZCA9IFRocmVhZDo6Y3JlYXRl
KCJXZWJDb3JlOiBBdWRpb1dvcmtsZXQiLCBbdGhpc10geworICAgICAgICB3b3JrbGV0VGhyZWFk
KCk7CisgICAgfSwgVGhyZWFkVHlwZTo6QXVkaW8pOworICAgIC8vIEZvcmNlIHRoZSBUaHJlYWQg
b2JqZWN0IHRvIGJlIGluaXRpYWxpemVkIGZ1bGx5IGJlZm9yZSBzdG9yaW5nIGl0IHRvIG1fdGhy
ZWFkIChhbmQgYmVjb21pbmcgdmlzaWJsZSB0byBvdGhlciB0aHJlYWRzKS4KKyAgICBXVEY6OnN0
b3JlU3RvcmVGZW5jZSgpOworICAgIG1fdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpOworfQorCit2
b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6d29ya2xldFRocmVhZCgpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyNpZiBVU0UoR0xJQikKKyAgICBHUmVmUHRy
PEdNYWluQ29udGV4dD4gbWFpbkNvbnRleHQgPSBhZG9wdEdSZWYoZ19tYWluX2NvbnRleHRfbmV3
KCkpOworICAgIGdfbWFpbl9jb250ZXh0X3B1c2hfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29u
dHJvbGxlcjsKKyAgICB7CisgICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3Jl
YXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVMb2NrKTsKKyAgICAgICAgbV93b3JrbGV0R2xvYmFs
U2NvcGUgPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3JlYXRlKCp0aGlzLCBtX3BhcmFtZXRl
cnMpOworCisgICAgICAgIHNjcmlwdENvbnRyb2xsZXIgPSBtX3dvcmtsZXRHbG9iYWxTY29wZS0+
c2NyaXB0KCk7CisKKyAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVkKCkpIHsKKyAgICAg
ICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRoZSB0aHJlYWQgaGFk
IGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4aXN0IHlldCwKKyAg
ICAgICAgICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpIGNvdWxkbid0IGJlIGNhbGxlZCBmcm9tIHN0
b3AoKS4KKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNjaGVkdWxlRXhlY3V0aW9uVGVy
bWluYXRpb24oKTsKKyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmZvcmJpZEV4ZWN1dGlv
bigpOworICAgICAgICB9CisgICAgfQorCisgICAgcnVuRXZlbnRMb29wKCk7CisKKyNpZiBVU0Uo
R0xJQikKKyAgICBnX21haW5fY29udGV4dF9wb3BfdGhyZWFkX2RlZmF1bHQobWFpbkNvbnRleHQu
Z2V0KCkpOworI2VuZGlmCisKKyAgICBSZWZQdHI8VGhyZWFkPiBwcm90ZWN0b3IgPSBtX3RocmVh
ZDsKKworICAgIEFTU0VSVChtX3dvcmtsZXRHbG9iYWxTY29wZS0+aGFzT25lUmVmKCkpOworCisg
ICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiB3b3JrbGV0R2xvYmFsU2NvcGVUb0Rl
bGV0ZTsKKyAgICB7CisgICAgICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRv
IGVuc3VyZSB0aGF0IHdlIGRvbid0IGNoYW5nZSBtX3dvcmtlckdsb2JhbFNjb3BlCisgICAgICAg
IC8vIHdoaWxlIFdvcmtlclRocmVhZDo6c3RvcCBpcyBhY2Nlc3NpbmcgaXQuCisgICAgICAgIGF1
dG8gbG9jayA9IGhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xvYmFsU2NvcGVM
b2NrKTsKKworICAgICAgICAvLyBEZWxheSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFdvcmtlckds
b2JhbFNjb3BlIGNvbnRleHQgdW50aWwgYWZ0ZXIgd2UndmUgdW5sb2NrZWQgdGhlCisgICAgICAg
IC8vIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrZXJHbG9iYWxTY29wZU11dGV4LiBUaGlzIGlzIG5l
ZWRlZCBiZWNhdXNlIGRlc3RydWN0aW5nIHRoZQorICAgICAgICAvLyBjb250ZXh0IHdpbGwgdHJp
Z2dlciB0aGUgbWFpbiB0aHJlYWQgdG8gcmFjZSBhZ2FpbnN0IHVzIHRvIGRlbGV0ZSB0aGUgV29y
a2VyVGhyZWFkCisgICAgICAgIC8vIG9iamVjdCwgYW5kIHRoZSBXb3JrZXJUaHJlYWQgb2JqZWN0
IG93bnMgdGhlIG11dGV4IHdlIG5lZWQgdG8gdW5sb2NrIGFmdGVyIHRoaXMuCisgICAgICAgIHdv
cmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlID0gV1RGTW92ZShtX3dvcmtsZXRHbG9iYWxTY29wZSk7
CisgICAgfQorCisgICAgLy8gVGhlIGJlbG93IGFzc2lnbm1lbnQgd2lsbCBkZXN0cm95IHRoZSBj
b250ZXh0LCB3aGljaCB3aWxsIGluIHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KKyAgICAv
LyBXZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVj
YXVzZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhl
bS4KKyAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IG51bGxwdHI7CisKKyAgICAvLyBT
ZW5kIHRoZSBsYXN0IFdvcmtlclRocmVhZCBSZWYgdG8gYmUgRGVyZWYnZWQgb24gdGhlIG1haW4g
dGhyZWFkLgorICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpXSB7IH0pOworCisgICAgLy8gVGhlIHRocmVhZCBvYmplY3QgbWF5IGJlIGFs
cmVhZHkgZGVzdHJveWVkIGZyb20gbm90aWZpY2F0aW9uIG5vdywgZG9uJ3QgdHJ5IHRvIGFjY2Vz
cyAidGhpcyIuCisgICAgcHJvdGVjdG9yLT5kZXRhY2goKTsKK30KKwordm9pZCBBdWRpb1dvcmts
ZXRUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCit7CisgICAgLy8gRG9lcyBub3QgcmV0dXJuIHVudGls
IHRlcm1pbmF0ZWQuCisgICAgbV9ydW5Mb29wLnJ1bihtX3dvcmtsZXRHbG9iYWxTY29wZS5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRUaHJlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTI3MDJjOThmZGY4M2Y5NzUyOTQ0YTQ1MGM5MzRh
Yzg1Mzc5NDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTsKKworc3RydWN0IFdv
cmtsZXRQYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBVUkwgd2luZG93VVJMOworCisgICAgV29y
a2xldFBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCitjbGFzcyBBdWRpb1dv
cmtsZXRUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Xb3JrbGV0VGhy
ZWFkPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IGNyZWF0
ZShjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldFRocmVhZChwYXJhbWV0ZXJzKSk7CisgICAg
fQorCisgICAgdm9pZCBzdGFydCgpOworCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCgpIHsg
cmV0dXJuIG1fcnVuTG9vcDsgfQorICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
bV90aHJlYWQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRU
aHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKKworICAgIHZvaWQgcnVuRXZlbnRMb29w
KCk7CisgICAgdm9pZCB3b3JrbGV0VGhyZWFkKCk7CisKKyAgICBSZWZQdHI8VGhyZWFkPiBtX3Ro
cmVhZDsKKyAgICBXb3JrZXJSdW5Mb29wIG1fcnVuTG9vcDsKKyAgICBXb3JrbGV0UGFyYW1ldGVy
cyBtX3BhcmFtZXRlcnM7CisgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiBtX3dv
cmtsZXRHbG9iYWxTY29wZTsKKyAgICBMb2NrIG1fdGhyZWFkQ3JlYXRpb25BbmRXb3JrbGV0R2xv
YmFsU2NvcGVMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDAyYjVmYTA0ZmVkZDkzZWU5YzNhMmQ5NTMw
MzA3ZDIxMDk0NGYzZTYuLmNkYzAzY2ZhYzRkODc3YTcwZWM1M2VhYjhiYTkzY2MzNzU2MDg3ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zCiAg
ICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcih1
bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRpb1dvcmts
ZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKGRvY3Vt
ZW50KSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUo
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKIHsK
ICAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRl
ciBwYWdlIG5hdmlnYXRlLgpAQCAtMTYxLDcgKzE2MSw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJh
c2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5u
ZWxzCiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRp
Zmllcih1bmlxdWVMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fd29ya2xldChBdWRp
b1dvcmtsZXQ6OmNyZWF0ZSgpKQorICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRl
KGRvY3VtZW50KSkKICAgICAsIG1faXNPZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRp
YVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKSwgKnRoaXMpKQogICAgICwgbV9yZW5kZXJUYXJnZXQo
V1RGTW92ZShyZW5kZXJUYXJnZXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKaW5kZXggZGY5MzVhNDA4ZjRjYjA0M2E3ZDg5
N2RiNjM3M2I0MTQ3N2Q4ZDc0OC4uYmNkNjgzMDAxOWM2ODYxOTcxMWY3MWZhYWUxZDg1YTZiOTg0
ZGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaWRsCkBAIC00Miw3ICs0Miw3IEBACiAgICAgLy8gQWxsIHBhbm5pbmcgaXMg
cmVsYXRpdmUgdG8gdGhpcyBsaXN0ZW5lci4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9M
aXN0ZW5lciBsaXN0ZW5lcjsKIAotICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFi
bGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xl
dCBhdWRpb1dvcmtsZXQ7CisgICAgW1NhbWVPYmplY3QsIFNlY3VyZUNvbnRleHQsIEVuYWJsZWRB
dFJ1bnRpbWU9QXVkaW9Xb3JrbGV0QVBJXSByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Xb3JrbGV0
IGF1ZGlvV29ya2xldDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0NvbnRleHRTdGF0
ZSBzdGF0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhdGVjaGFuZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNzUxZGU5MThjZTFkYzM2YTFjNzllOTUwM2M5
MjhmNGY4OWYwOTZiYy4uYWUzNGZmYmEyM2NkYTE2Y2Q5YWE3NDYwZTdhODcyZTc5ODIxM2U4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsMTAgKzMwLDEzIEBACiAKICNp
bmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC05
OSwxOCArMTAyLDMwIEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJ
bnB1dChjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCiAgICAgICAgICAgICAvLyBSZS1jcmVh
dGUgZGVzdGluYXRpb24uCiAgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAg
ICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwotICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKKyAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5k
ZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAorRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpCit7CisgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94
eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAgICAgIHJldHVybiBb
d29ya2xldFByb3h5ID0gbWFrZVJlZigqd29ya2xldFByb3h5KV0oRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKSB7CisgICAgICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRv
V29ya2xldEdsb2JhbFNjb3BlKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKTsK
KyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9
OworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKIHsKICAgICBBU1NFUlQoaXNJ
bml0aWFsaXplZCgpKTsKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydCgpOworICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRG
dW5jdGlvbigpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTgsNyArMTMzLDcgQEAgdm9p
ZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShGdW5jdGlvbjx2b2lkICgpPiYm
IGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmIChpc0lu
aXRpYWxpemVkKCkpCi0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAg
ICBjb250ZXh0KCkucG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwogfQogCkBAIC0xNjMsNyAr
MTc4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQgY2hhbm5lbEMKICAgICAgICAgLy8gUmUtY3JlYXRlIGRl
c3RpbmF0aW9uLgogICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAgICAgIGNyZWF0
ZURlc3RpbmF0aW9uKCk7Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAg
IG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsK
ICAgICB9CiAKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXgg
ZWRlMTUzM2MxNjQ4MjljZjFlMjNiYTkzYzI5YTg4NjM0MjAzZTRkMi4uN2Q2NWUyNWViNTU0MWE5
Nzc2ZDUwMDZlMTcyZDIwMDViNDNkZThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4pOwogICAgIHZvaWQg
Y3JlYXRlRGVzdGluYXRpb24oKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4gZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCk7CisKICAgICB2b2lkIGluaXRp
YWxpemUoKSBmaW5hbDsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7CkBAIC02MSw3ICs2
Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50KCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFN0cmluZyBtX2lucHV0RGV2aWNlSWQ7CiAgICAgdW5z
aWduZWQgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiAgICAgZmxvYXQgbV9zYW1wbGVS
YXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGZhYTMzNjUyZWRi
Mzc2M2IzOWMxZjZiYjQ3ZjZiYjI0ZmEwM2M0MjAuLjUzYjU1NDEzZTkyNjFiNzcwZWY3YWMzYmFh
ZDZkODZlMGM4MjllY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMxLDcg
KzMxLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQu
aCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5o
IgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiSFJU
RkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05Niw5ICs5OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIG1fc3RhcnRl
ZFJlbmRlcmluZyA9IHRydWU7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7CiAKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRpYWxpemUgaGVyZT8K
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhy
ZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5kZXJUaHJlYWQgPSBU
aHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIG9mZlRocmVhZFJl
bmRlcmluZyA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBvZmZsaW5lUmVuZGVyKCk7CiAgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lID0g
bV9jdXJyZW50U2FtcGxlRnJhbWUsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXSB7CiAgICAgICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSBmYWxzZTsKQEAgLTExNCw3
ICsxMTUsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpzdGFydFJlbmRlcmluZygpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwotICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICB9OworCisgICAg
aWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgp
KSB7CisgICAgICAgIHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFs
U2NvcGUoW29mZlRocmVhZFJlbmRlcmluZyA9IFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKV0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgb2ZmVGhyZWFk
UmVuZGVyaW5nKCk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgbGltaXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBh
dWRpby4KKyAgICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRl
cmVyIiwgV1RGTW92ZShvZmZUaHJlYWRSZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NWNjMTA4NTVkOGJhZmVkN2E0
NTNjNGJlOWY0ZDkyZGUyNDUzN2JiLi5jN2VjZmRkMTU1YzUyODBkNTg1NGJmYjUyYmViZWEwMjg0
YWRiN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA1LDcgKzIwNSwxMCBAQCBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9u
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcAogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJu
ZWwuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC0yNTc5LDYg
KzI1ODIsNyBAQCB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKIHdvcmtsZXRz
L1dvcmtsZXQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKIHdvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
CiB3b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCiB4bWwvRE9NUGFyc2VyLmNwcApAQCAtMjY4MCw2ICsyNjg0LDcgQEAgSlNB
dWRpb1RpbWVzdGFtcC5jcHAKIEpTQXVkaW9UcmFjay5jcHAKIEpTQXVkaW9UcmFja0xpc3QuY3Bw
CiBKU0F1ZGlvV29ya2xldC5jcHAKK0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiBKU0F1
ZGlvV29ya2xldE5vZGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmNwcAogSlNBdXRo
ZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1MmRiM2MyMTBjZWFj
ZTUyOTkxODY4ZWNiMGNiNzM2MzVjZmVkMC4uYjBjMjk3MGY1YWNkZjllMjMzMGViZjhkN2E5NDAx
MmQ1ZTYwMzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjQ1MSw2ICsyNDUxLDEwIEBACiAJCTgzM0I5RTMyMUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkYxRjUwOEQ4MDAwRTBFNDI4IC8q
IEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM0MUY1MDhEODUw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkExRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5
c3RlbUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJDMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnku
aCAqLzsgfTsKKwkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFz
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JE
ODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi87IH07CisJCTgz
M0JEODE4MjUyNEQ0RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi87IH07CisJCTgzM0JEODFE
MjUyNEQ1MzAwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTkyNTI0RDUxQjAwNkU3
MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzM0JEODFFMjUyNEQ1
MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIz
IC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggKi87IH07CiAJCTgzM0QxQzc2MjREOEQ1
NEYwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0QxQzczMjREOEQ1MzMwMEU4MTNE
RiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLzsgfTsKIAkJODM0MDdGQzExRThE
OUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM0M0Q5ODQyNEQwREVFOTAwOUFCRDQ5IC8qIFdlYktpdE9z
Y2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQzRDk4MTI0RDBERUE5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCAq
LzsgfTsKQEAgLTI1MDgsNiArMjUxMiw3IEBACiAJCTgzOEY4NkRCMUY1MDlFN0IwMEU4Q0ZDNSAv
KiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAwRThDRkM1IC8qIEZpbGVTeXN0ZW1F
bnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1MEI2M0UwMEU5RDg2QiAvKiBET01G
aWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oICovOyB9OwogCQk4
Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4
NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07CisJCTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyog
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovOyB9OwogCQk4MzlBMkYyRTFFMjA0
QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJH
TFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUIxQTBD
MEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJCTgzOUJFNkQ1MjRGNTg3
NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCAq
LzsgfTsKQEAgLTI1MzUsNiArMjU0MCw3IEBACiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAv
KiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyog
SlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRw
UmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAv
KiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgfTsK
KwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFF
NDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgfTsK
IAkJODNEQjlFMEYyNERBMTk0OTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBDMjREQTE4QjUw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi87IH07CiAJCTgzREI5RTEwMjREQTE5NTcw
MDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwRTI0REExOEI2MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oICovOyB9OwogCQk4M0UzNTlBMjFCQjEwMzFEMDAyQ0VCOTggLyogSlNI
VE1MVGltZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oICov
OyB9OwpAQCAtMjU0NCw2ICsyNTUwLDcgQEAKIAkJODNGQjMzNzExRjUwOEE1NDAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkQxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3MzFGNTA4QTU4MDA5ODZFNTQgLyogRmls
ZVN5c3RlbUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4M0ZCMzM2RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggKi87IH07
CiAJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2QzFGNTA4
QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4M0ZDOTk0QjI1
MjU1N0VBMDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyog
QXVkaW9Xb3JrbGV0VGhyZWFkLmggKi87IH07CiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07CkBAIC0xMDU3OCw2
ICsxMDU4NSwxMyBAQAogCQk4MzNCOUUyRDFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVt
RmlsZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmls
ZVN5c3RlbUZpbGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5
RTJFMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE1MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3Jr
bGV0UGVuZGluZ1Rhc2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzM0JEODFBMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFCMjUyNEQ1
MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcyQjMgLyogQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzNDRjcwRjIwREIzRjVGMDAxNDFCQ0MgLyogSlNQZXJmb3JtYW5jZU9ic2Vy
dmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVy
Zm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzM0QxQzczMjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0QxQzc1MjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNCw2ICsxMDcxOCw3IEBA
CiAJCTgzOTk0NzA5MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRDFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01G
aWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
RmlsZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTk0NzBFMUY1
MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJG
MkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3Rh
dGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVU
cmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQw
MDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDc1Miw2ICsxMDc2Nyw3IEBACiAJCTgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRDUxMUYzMjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVzaFB1bGxGSUZPLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1
c2hQdWxsRklGTy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoUHVsbEZJ
Rk8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzREI5RTBBMjREQTE4QjQwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJU
eXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0RCOUUwRDI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDc5MSw2ICsxMDgwNyw5IEBACiAJCTgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAv
KiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzRkIzMzZFMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1FbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
U3lzdGVtRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNGQzk5NDcyNTI1
NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5
OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
RkM5OTRBMjUyNTU3RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TW9kaWZpZXJJbml0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBV
SUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUV2ZW50SW5p
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNTFEQTlGMTY2MDAzNzIz
N0MgLyogVUlFdmVudEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVJRXZlbnRJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTYxLDggQEAK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4
QjAwOEI1QjRFIC8qIHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDgg
LyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5
QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFG
MjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAq
LywKQEAgLTE3NTU0LDggKzE3NTc1LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUg
LyogSW5saW5lTGluZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxp
bmVMaW5lQm94LmNwcCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5l
TGluZUJveC5oICovLAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250
ZW50QnJlYWtlci5jcHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGlu
ZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElu
bGluZUxpbmVCdWlsZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyog
SW5saW5lTGluZUJ1aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyog
SW5saW5lTGluZUdlb21ldHJ5LmggKi8sCkBAIC0xODcyMCw2ICsxODczOSw4IEBACiAJCQkJMkU0
MzQ2M0QwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJ
CQkyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywK
IAkJCQkyRTQzNDYzRjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywK
KwkJCQk4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCAqLywKKwkJCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oICovLAogCQkJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBX
b3JrZXJSZXBvcnRpbmdQcm94eS5oICovLAogCQkJCTJFNDM0NjQwMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJSdW5Mb29wLmNwcCAqLywKIAkJCQkyRTQzNDY0MTBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyUnVuTG9vcC5oICovLApAQCAtMTk3MzgsOCArMTk3NTksMTEgQEAKIAkJCQk0QkRFQTMy
NjIxN0ZFMkZBMDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKIAkJCQk0QkRF
QTMyNDIxN0ZFMkU0MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNEJE
RUEzMkEyMTgwMTA3MjAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8sCisJCQkJ
ODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8s
CiAJCQkJODNBQ0QwMTAyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmggKi8sCiAJ
CQkJODNBQ0QwMTIyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmlkbCAqLywKKwkJ
CQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgKi8s
CisJCQkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAq
LywKIAkJCQk0QkRFQTMyOTIxODAwNDBDMDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwICovLAogCQkJCTRCREVBMzI3MjE4MDAzRjcwMDUyREZDRCAvKiBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oICovLAogCQkJKTsKQEAgLTI5ODU4LDExICsyOTg4MiwxOCBAQAogCQkJCTgz
Qjk4NzA2MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuY3BwICovLAogCQkJCTgzQjk4
NzAxMjUyMjVGMEMwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCAqLywKIAkJCQk4M0I5ODZGRDI1
MjI1RjBCMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmlkbCAqLywKKwkJCQk4MzNCRDgxQTI1MjRE
NTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovLAorCQkJCTgzM0JE
ODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovLAorCQkJ
CTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwg
Ki8sCisJCQkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLywKKwkJCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQk4M0I5ODcwMzI1MjI1RjBDMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5jcHAgKi8sCiAJCQkJODNCOTg3MDcyNTIyNUYwRTAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGUuaCAqLywKIAkJCQk4M0I5ODcwNDI1MjI1RjBEMDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwgKi8sCiAJCQkJODNCOTg3MDAyNTIyNUYwQjAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmggKi8sCiAJCQkJODNCOTg3MDUyNTIyNUYwRDAwQTkz
OUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbCAqLywKKwkJCQk4M0ZDOTk0QTI1MjU1
N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLywKKwkJCQk4M0ZDOTk0OTI1
MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8sCiAJCQkJODMxOThGQkIy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJF
MjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQy
NEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzA0NjcsOCAr
MzA0OTgsMTEgQEAKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYgLyogQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOEIxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQjI1
MjI1RjdEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNC
RDgxRDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MDkyNTIyNUY3MjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4NzBBMjUyMjVG
NzYwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0
NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzE3NzIsNiArMzE4MDYsNyBAQAogCQkJCUNEMDYzRjgzMUUyM0ZBODkwMDgxMkJF
MyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFNTBBMTU1
QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA1OTI2NDFF
MjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCNTdDQjUyRTE4MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVu
dEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0IC8qIElu
bGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlB
QiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc4MCw3
ICszMTgxNSw2IEBACiAJCQkJQkNFNzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8qIElubGluZUl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8q
IElubGluZUxpbmVCb3guaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVC
NDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RjkxNDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU5NSw2ICszNDYyOSw4IEBACiAJCQkJMUFCQzcxMDkx
NzBFNUUxQjAwRjlBOUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhC
NEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2Vy
UmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0
NERFMDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0
NjA5LDcgKzM0NjQ1LDkgQEAKIAkJCQk0QkRFQTMyMDIxN0VDNTVGMDA1MkRGQ0QgLyogV29ya2xl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEI3RjlDNTIyMTgzQjVFNTAwMUNFQkEwIC8qIFdvcmts
ZXRDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyNTIxN0ZFMkU0MDA1
MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgx
ODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQUNEMDEzMjUyMjlFMTAwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5k
aW5nVGFza3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREVBMzI4MjE4MDAzRjcwMDUyREZDRCAv
KiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjQw
OTlFNjQ5MjAwNTZFNTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFt
QnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYyYjBkNmQ1NGE0ZjAwMDJkZWU0YmQyZGZj
N2VjNmVkMTM3ZDg0NjguLmIzYThkNWIxM2M0NTExY2Y3ODQyNTc1OWQ2MDUxNDgxMTE0OTBjMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEF1ZGlv
TGlzdGVuZXIpIFwKICAgICBtYWNybyhBdWRpb1BhcmFtTWFwKSBcCiAgICAgbWFjcm8oQXVkaW9X
b3JrbGV0KSBcCisgICAgbWFjcm8oQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAgICBtYWNy
byhBdWRpb1dvcmtsZXROb2RlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5j
cHAKaW5kZXggMzhkZjY3NzUyZTkwYTZhMmUwMTc0Y2ZhZmJjNGY4NzFlYTgxYzE0YS4uZGE0NmU4
NWMzNDAzYTJlODA3NjM4MjM4MjVkYjg3NDE5ZDc4MWRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkRPTUdDT3V0cHV0Q29uc3RyYWludC5oIgogI2luY2x1ZGUgIkRPTUlz
b1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rv
ckJhc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNjgsOSArNjksMTIgQEAgSlNW
TUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KCkpCiAjZW5kaWYKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKICNp
ZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU+KCkpCi0gICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEds
b2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2Nv
cGU+KCkpCisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKKyAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6Y3JlYXRlPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxp
emF0aW9uR2xvYmFsT2JqZWN0KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNJREJTZXJp
YWxpemF0aW9uR2xvYmFsT2JqZWN0PigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgzYjgyMzRjMzM1ZGVkMTQ1MGQxODEzZmU4
NDI5N2E5NzU4Mzg5NTEuLmI4NDQwZTg3NzBlNDcyOTFmN2VlMjA2MzE5OWVhMDVjM2M0YmIwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKQEAgLTk5LDkgKzk5LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZv
ckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRy
PEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3Bl
OwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6
OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxU
eXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGQwYTU0N2Fj
NTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2MDkuLmUzOTAxODBmNTcxZjllMWUzNWJjOTIz
YjFkNzcxZDRiOTVjZWRhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpA
QCAtNDQsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29u
c29sZUNsaWVudDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCi1jbGFzcyBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyIHsKK2NsYXNzIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKQEAgLTY3
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpL2lzRXhlY3V0aW9u
Rm9yYmlkZGVuKCkgdG8gZ3VhcmQgYWdhaW5zdCByZWVudHJ5IGludG8gSlMuCiAgICAgLy8gQ2Fu
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCiAgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCk7Ci0gICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBD
YWxsZWQgb24gV29ya2VyIHRocmVhZCB3aGVuIEpTIGV4aXRzIHdpdGggdGVybWluYXRpb24gZXhj
ZXB0aW9uIGNhdXNlZCBieSBmb3JiaWRFeGVjdXRpb24oKSByZXF1ZXN0LAogICAgIC8vIG9yIGJ5
IFdvcmtlciB0aHJlYWQgdGVybWluYXRpb24gY29kZSB0byBwcmV2ZW50IGZ1dHVyZSBlbnRyeSBp
bnRvIEpTLgpAQCAtNzksMTEgKzgwLDExIEBAIHB1YmxpYzoKIAogICAgIEpTQzo6Vk0mIHZtKCkg
eyByZXR1cm4gKm1fdm07IH0KICAgICAKLSAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCk7Ci0g
ICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpOworICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3Mo
KSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CiAKLSAgICB2b2lk
IGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZp
Y2F0aW9uQ2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgdm9pZCBh
ZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOwog
CiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CiAgICAgdm9pZCBkZXRh
Y2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDEwZjNlNjY4NjY1NDVhNWE2MGE5
ZWU1YTlmODY3NGFlM2MyODQ5MzIuLjU4ZmQxYTdhMjZmZGQxZGFjNGRiMmI3MGIxYzU0NTM3NWJj
ZDRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC03NzUsNyArNzc1LDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVj
dFByb3RvdHlwZQogCiAgICAgIyBGb3Igd29ya2VycywgdGhlIGdsb2JhbCBvYmplY3QgaXMgYSBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50
eXBlLT5uYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSI7Ci0gICAgIyBGb3Igd29ya2xldHMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgIyBGb3Ig
d29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUg
b3IgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lIGVxICJXb3JrbGV0R2xvYmFsU2NvcGUiOwogCiAgICAgcmV0dXJuIElzRE9N
R2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRleCBiZWUwZmM1MDY5MTlmY2NmZDE3NWY2
OWNjNTIzYzU3NTZiYzA4YTg4Li5mNGM4NGJjODhjNDExNDVkZDE2ZWQzODNkNGQzOWM0MmNjNWQ2
OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nl
c3MtaWRscy5wbApAQCAtNDcsNiArNDcsNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CitteSAkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOwogbXkgJGlkbEF0dHJpYnV0
ZXNGaWxlOwpAQCAtNjksNiArNzAsNyBAQCBHZXRPcHRpb25zKCdkZWZpbmVzPXMnID0+IFwkZGVm
aW5lcywKICAgICAgICAgICAgJ3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGU9cycgPT4gXCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAg
ICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdwYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+
IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3N1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcywKICAgICAg
ICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmlidXRlc0ZpbGUsCkBAIC04
Myw2ICs4NSw3IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGCiBkaWUoJ011c3Qgc3BlY2lmeSBh
biBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicp
IHVubGVzcyBkZWZpbmVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1hdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRw
dXQgZmlsZSB1c2luZyAtLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNz
IGRlZmluZWQoJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpIHx8ICFkZWZpbmVkKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogZGllKCdNdXN0IHNwZWNpZnkgdGhlIGZpbGUgbGlzdGlu
ZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykgdW5sZXNzIGRlZmluZWQoJGlk
bEZpbGVOYW1lc0xpc3QpOwogZGllKCdNdXN0IHNwZWNpZnkgSURMIGF0dHJpYnV0ZXMgZmlsZSB1
c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRpZGxBdHRyaWJ1dGVz
RmlsZSk7CkBAIC05NSw2ICs5OCw3IEBAICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlCiAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOworJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYgZGVmaW5lZCgkc3VwcGxlbWVudGFsTWFrZWZp
bGVEZXBzKTsKIAogbXkgQGlkbEZpbGVOYW1lczsKQEAgLTEzNSw2ICsxMzksNyBAQCBteSAkZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0g
IiI7CiAKIG15ICRpc29TdWJzcGFjZXNIZWFkZXJDb2RlID0gPDxFTkQ7CkBAIC0yMzcsNiArMjQy
LDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNo
KSB7CiAgICAgICAgICAgICAgICAgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
Lj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBl
cSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAgICAgICRwYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiQXVkaW9Xb3JrbGV0IikgeworICAgICAgICAgICAgICAg
ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNv
ZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENv
bnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjU0LDYg
KzI2MSw3IEBAIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZh
Y2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldvcmtsZXRHbG9iYWxTY29wZSIsICR3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIiwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRl
c3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZGFlMTEwN2QzMzRiYzhmNDNkZjJmNGY3
ZTg0YTk4M2MzNWQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBA
IC0wLDAgKzEsMiBAQAorcGFydGlhbCBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFi
ZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBA
IC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBi
dWlsZCBzY3JpcHRzIHRoYXQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5o
IGFuZAorICAgIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUg
Y3JlYXRlZCBmb3IgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQg
cHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUg
SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApAQCAtMCwwICsxLDUgQEAKKy8qCisg
ICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisg
ICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFp
bnRXb3JrbGV0LmNwcAppbmRleCAxMzZlNGYxNGVjZmU1ZTRiOWY5Yzk1MjAyNzQzOWE0YTMxZDQ5
NjQ1Li42YTBlMTk2NjQ1NDJlODE2ODFjN2E2OTdlY2M3MTE1YjdhNGRmYzExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkRPTUNTU05hbWVzcGFjZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01NiwxMSArNTcsMTggQEAgY29uc3QgY2hhciogRE9NQ1NTUGFpbnRXb3Jr
bGV0OjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuICJET01DU1NQYWludFdvcmtsZXQiOwog
fQogCi12b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCisvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG92ZXJyaWRlIGFu
ZCByZWx5IG9uIHRoZSBzdGFuZGFyZC1jb21wbGlhbnQgV29ya2xldDo6YWRkTW9kdWxlKCkgaW5z
dGVhZC4KK3ZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVV
UkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiB7CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJUaGlzIGZyYW1lIGlzIGRldGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkb3dubG9hZCB0aGUgc291cmNlIGZyb20g
dGhlIFVSTAogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTExMzYKLSAgICBhdXRvIG1heWJlQ29udGV4dCA9IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjp0
cnlDcmVhdGUoZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7CisgICAgYXV0
byBtYXliZUNvbnRleHQgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKCpkb2N1
bWVudCwgU2NyaXB0U291cmNlQ29kZShtb2R1bGVVUkwpKTsKICAgICBpZiAoVU5MSUtFTFkoIW1h
eWJlQ29udGV4dCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgT3V0T2ZN
ZW1vcnlFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNzAsOSArNzgsMTUgQEAgdm9pZCBQ
YWludFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
bW9kdWxlVVJMLCBXb3JrbGUKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY29udGV4dC0+
cGFpbnREZWZpbml0aW9uTG9jaygpKTsKICAgICBmb3IgKGF1dG8mIG5hbWUgOiBjb250ZXh0LT5w
YWludERlZmluaXRpb25NYXAoKS5rZXlzKCkpCi0gICAgICAgIGRvY3VtZW50LnNldFBhaW50V29y
a2xldEdsb2JhbFNjb3BlRm9yTmFtZShuYW1lLCBtYWtlUmVmKGNvbnRleHQuZ2V0KCkpKTsKKyAg
ICAgICAgZG9jdW1lbnQtPnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShuYW1lLCBt
YWtlUmVmKGNvbnRleHQuZ2V0KCkpKTsKICAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KIAorVmVj
dG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IFBhaW50V29ya2xldDo6Y3JlYXRlR2xv
YmFsU2NvcGVzKCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIHJl
dHVybiB7IH07Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU1BhaW50V29ya2xldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29y
a2xldC5oCmluZGV4IGI5YjEzODViYjA4YTNmMWNlZDRlYjJiNDI0MDNkZDEwN2U1YTg0ZWUuLjA5
NGFlNmMxMmY3NTE5Mzg1YmExYTYyZDdiYjIwNDgyMjNmMmMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgKQEAgLTQxLDE1ICs0MSwyMSBAQCBjbGFzcyBET01DU1NO
YW1lc3BhY2U7CiAKIGNsYXNzIFBhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBhaW50V29ya2xldD4gY3JlYXRlKCkKKyAgICBzdGF0
aWMgUmVmPFBhaW50V29ya2xldD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhaW50V29ya2xldCk7CisgICAgICAgIGF1dG8g
d29ya2xldCA9IGFkb3B0UmVmKCpuZXcgUGFpbnRXb3JrbGV0KGRvY3VtZW50KSk7CisgICAgICAg
IHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgICAgICByZXR1cm4gd29ya2xldDsKICAg
ICB9CiAKLSAgICB2b2lkIGFkZE1vZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxl
VVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7
CisgICAgLy8gV29ya2xldC4KKyAgICB2b2lkIGFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVs
ZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFs
OworICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxT
Y29wZXMoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBQYWludFdvcmtsZXQoKSA9IGRlZmF1bHQ7
CisgICAgZXhwbGljaXQgUGFpbnRXb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAg
OiBXb3JrbGV0KGRvY3VtZW50KQorICAgIHsgfQogfTsKIAogY2xhc3MgRE9NQ1NTUGFpbnRXb3Jr
bGV0IGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NQ1NTTmFtZXNwYWNlPiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCAyYWNmM2YxOGNhZGM2ODZiMzFlYzNhZDA1YmM1OGEwMWIwZWYz
NGFlLi44ZTliMjE5MGY4ZTJiMWE3NDlkMzNmYjMyYzE3ZDBlOWZiY2RjZTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTg0MzksNyArODQzOSw3IEBAIERldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlciYgRG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uCiBQYWludFdvcmtsZXQmIERvY3VtZW50OjplbnN1cmVQYWludFdvcmtsZXQoKQogewogICAg
IGlmICghbV9wYWludFdvcmtsZXQpCi0gICAgICAgIG1fcGFpbnRXb3JrbGV0ID0gUGFpbnRXb3Jr
bGV0OjpjcmVhdGUoKTsKKyAgICAgICAgbV9wYWludFdvcmtsZXQgPSBQYWludFdvcmtsZXQ6OmNy
ZWF0ZSgqdGhpcyk7CiAgICAgcmV0dXJuICptX3BhaW50V29ya2xldDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAwNmEzZWM5MDY1NTgy
NmZiY2Q5MWE4M2I2NDFlMjdmNTllNzVkZTYwLi4wY2NjYzExODE2M2Y5NGU1ZWYyNTg3MDJlMjI4
YjIxZDlkNjJkNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaApAQCAtMTI3LDYgKzEyNywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NQYWludGlu
Z0FQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZDsgfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZvaWQgc2V0QXVkaW9Xb3JrbGV0
QVBJRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2F1ZGlvV29ya2xldEFQSUVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KKyAgICBib29sIGF1ZGlvV29ya2xldEFQSUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2F1ZGlvV29ya2xldEFQSUVuYWJsZWQ7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENT
U19UWVBFRF9PTSkKICAgICB2b2lkIHNldENTU1R5cGVkT01FbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1fQ1NTVHlwZWRPTUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNzc1R5cGVk
T01FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9DU1NUeXBlZE9NRW5hYmxlZDsgfQpAQCAtMzAy
LDYgKzMwNyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAg
Ym9vbCBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFC
TEUoV0VCX0FVRElPKQorICAgIGJvb2wgbV9hdWRpb1dvcmtsZXRBUElFbmFibGVkIHsgZmFsc2Ug
fTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICBib29sIG1fQ1NTVHlw
ZWRPTUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDc5
MGRiNGI3ZTk2ZmE5NmRmODhmZDY3OGNhZTBjNzJlNTIzYTgxOTkuLjdjZDVkZjEwZmZkMTBmZjcz
ZDQ5M2JlMWMwOWE4MTlkMjQ1MjY0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAg
LTI1OSw4ICsyNTksNiBAQCBwcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCi1h
dWRpb1dvcmtsZXRFbmFibGVkOgotICBpbml0aWFsOiBmYWxzZQogcGFnaW5hdGVEdXJpbmdMYXlv
dXRFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogZnVsbFNjcmVlbkVuYWJsZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNDNkNTc2NTI5OGMwNjc5MmM2ZGRj
ZTg1YzQyYTBhM2Y1NzVhODc4My4uOTg1MjA1ZGFiYWFiOGRhMzg2ZjY1NjRkODA5NmZkMjg2NTVj
MWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAtMzcsNyAr
MzcsNyBAQCBzdHJ1Y3QgTm93UGxheWluZ0luZm87CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRp
YVN0cmF0ZWd5IHsKIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24o
CisgICAgdmlydHVhbCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKICAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bi5oCmluZGV4IGRlYjc1N2RjNDVlNTc4NTg1MjE3ZmQzYmVjMDcxMmI2NDRkNzUzNzQuLjE2MGM2
NTc4ZTE1ZWQ1ZWE3NTI1ZGM3NjhiZDRlZjNmZGM3NGY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNkZWZpbmUgQXVkaW9EZXN0aW5hdGlvbl9oCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDE2ICs0MSwxNiBAQCBjbGFzcyBB
dWRpb0lPQ2FsbGJhY2s7CiAvLyBUaGUgYXVkaW8gaGFyZHdhcmUgcGVyaW9kaWNhbGx5IGNhbGxz
IHRoZSBBdWRpb0lPQ2FsbGJhY2sgcmVuZGVyKCkgbWV0aG9kIGFza2luZyBpdCB0byByZW5kZXIv
b3V0cHV0IHRoZSBuZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1ZGlvLgogLy8gSXQgb3B0aW9uYWxs
eSB3aWxsIHBhc3MgaW4gbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dCB3aGVuIGl0IGNhbGxzIHJlbmRl
cigpLgogCi1jbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIHsKK2NsYXNzIEF1ZGlvRGVzdGluYXRpb24g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9EZXN0aW5hdGlvbj4gewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9m
SW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4K
ICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBm
b3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2
aWNlSWQuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERl
dmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAg
IHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzUGxheWluZygpID0gMDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggNzRhZDYxNmZhOWUyNWRlYjk5OWM5NmI2
NjdlZDE0OTQ3MGJmNjg3Mi4uZGE0ZTRiMmM4YjYwNzM0ODNmOWZhZGM2N2JhZmJmZmY4Njg1Zjlh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIGNvbnN0ZXhw
ciBzaXplX3QgZmlmb1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6
ZTsKIAogQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpjcmVhdGVPdmVycmlkZSA9IG51bGxwdHI7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBj
YWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1
ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
IGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAg
ICAgLy8gRklYTUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAK
QEAgLTU1LDcgKzU1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAoQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSkKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVz
dGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUoY2FsbGJhY2ssIHNhbXBsZVJhdGUpOwogCi0g
ICAgYXV0byBkZXN0aW5hdGlvbiA9IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkNvY29hPihj
YWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgYXV0byBk
ZXN0aW5hdGlvbiA9IGFkb3B0UmVmKCpuZXcgQXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxiYWNr
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7CiAgICAgZGVzdGluYXRpb24t
PmNvbmZpZ3VyZSgpOwogICAgIHJldHVybiBkZXN0aW5hdGlvbjsKIH0KQEAgLTEwMyw5ICsxMDMs
MTAgQEAgdW5zaWduZWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpmcmFtZXNQZXJCdWZmZXIoKSBj
b25zdAogICAgIHJldHVybiBtX3JlbmRlckJ1cy0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQgQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJU
aHJlYWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCIp
OworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCk7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9v
dXRwdXRVbml0KTsKIAogICAgIGlmICghcmVzdWx0KQpAQCAtMTE2LDYgKzExNyw3IEBAIHZvaWQg
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIHsKICAgICBMT0coTWVkaWEsICJBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091dHB1
dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0g
bnVsbHB0cjsKIAogICAgIGlmICghcmVzdWx0KQogICAgICAgICBzZXRJc1BsYXlpbmcoZmFsc2Up
OwpAQCAtMTIzLDYgKzEyNSw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkK
IAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxheWlu
ZykKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1faXNQbGF5aW5nTG9jayk7CiAgICAg
aWYgKG1faXNQbGF5aW5nID09IGlzUGxheWluZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMs
MTggKzE3NiwzOCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25z
dCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIgbgogCiAgICAgLy8gQXNzb2NpYXRl
IHRoZSBkZXN0aW5hdGlvbiBkYXRhIGFycmF5IHdpdGggdGhlIG91dHB1dCBidXMgdGhlbiBmaWxs
IHRoZSBGSUZPLgogICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1RvQnVzKGJ1ZmZlcnMsIG1fb3V0cHV0
QnVzLmdldCgpLCBudW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9mRnJhbWVzLCAwLCBudW1iZXJPZkZy
YW1lcyk7Ci0gICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0cHV0
QnVzLnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyOwog
CisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOworICAg
ICAgICBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVt
YmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmts
ZXQsIHdlIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgorICAgIGlmICht
X2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lc1RvUmVuZGVy
XSgpIG11dGFibGUgeworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1f
aXNQbGF5aW5nTG9jaywgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgICAgICAgICBpZiAobG9jay5v
d25zX2xvY2soKSAmJiBtX2lzUGxheWluZykKKyAgICAgICAgICAgICAgICByZW5kZXJPblJlbmRl
cmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOworCisgICAgcmV0dXJu
IG5vRXJyOworfQorCisvLyBUaGlzIHJ1bnMgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVu
IEF1ZGlvV29ya2xldCBpcyBlbmFibGVkLCBvbiB0aGUgYXVkaW8gZGV2aWNlJ3MgcmVuZGVyaW5n
IHRocmVhZCBvdGhlcndpc2UuCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25S
ZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpCit7CiAgICAgZm9yIChzaXplX3Qg
cHVzaGVkRnJhbWVzID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hlZEZy
YW1lcyArPSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpIHsKICAgICAgICAgaWYg
KG1fcmVzYW1wbGVyKQogICAgICAgICAgICAgbV9yZXNhbXBsZXItPnByb2Nlc3ModGhpcywgbV9y
ZW5kZXJCdXMucHRyKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0
cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1w
KTsKIAorICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOwogICAgICAg
ICBtX2ZpZm8tPnB1c2gobV9yZW5kZXJCdXMucHRyKCkpOwogICAgIH0KLQotICAgIHJldHVybiBu
b0VycjsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmgKaW5kZXggMDBkZGEyZmIyYTM3YjgzZjEwZWZhNTI3MWIxNzY4YTgwYjQ4MTFlYy4uMDg5
NGQ2MjFhMmYxNTMyMjUxMjczNjUwYjZlNWEzZDNlYzk5NmY4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQXVkaW9CdXM7CiBjbGFzcyBNdWx0aUNoYW5u
ZWxSZXNhbXBsZXI7CiBjbGFzcyBQdXNoUHVsbEZJRk87CiAKLXVzaW5nIENyZWF0ZUF1ZGlvRGVz
dGluYXRpb25Db2NvYU92ZXJyaWRlID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwordXNpbmcgQ3JlYXRlQXVk
aW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgPSBSZWY8QXVkaW9EZXN0aW5hdGlvbj4oKikoQXVk
aW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIC8vIEFuIEF1ZGlvRGVzdGluYXRp
b24gdXNpbmcgQ29yZUF1ZGlvJ3MgZGVmYXVsdCBvdXRwdXQgQXVkaW9Vbml0CiBjbGFzcyBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbiwgcHVibGljIEF1ZGlv
U291cmNlUHJvdmlkZXIgewpAQCAtNjUsMTEgKzY1LDE1IEBAIHByb3RlY3RlZDoKIAogICAgIHZv
aWQgc2V0QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiYpOwogCisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3Bh
dGNoVG9SZW5kZXJUaHJlYWQ7CisKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAotICAgIGZyaWVuZCBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlv
SU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOwor
ICAgIHZvaWQgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpOwor
CisgICAgZnJpZW5kIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBm
bG9hdCk7CiAgICAgCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICB2b2lkIHByb3Zp
ZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwpAQCAtOTEs
MTEgKzk1LDE0IEBAIHByaXZhdGU6CiAgICAgLy8gUmVzb2x2ZXMgdGhlIGJ1ZmZlciBzaXplIG1p
c21hdGNoIGJldHdlZW4gdGhlIFdlYkF1ZGlvIGVuZ2luZSBhbmQKICAgICAvLyB0aGUgY2FsbGJh
Y2sgZnVuY3Rpb24gZnJvbSB0aGUgYWN0dWFsIGF1ZGlvIGRldmljZS4KICAgICBVbmlxdWVSZWY8
UHVzaFB1bGxGSUZPPiBtX2ZpZm87CisgICAgTG9jayBtX2ZpZm9Mb2NrOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9yZXNhbXBsZXI7CiAgICAgQXVkaW9J
T1Bvc2l0aW9uIG1fb3V0cHV0VGltZXN0YW1wOwogCiAgICAgZmxvYXQgbV9jb250ZXh0U2FtcGxl
UmF0ZTsKKworICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwogICAgIGJvb2wgbV9pc1BsYXlpbmcg
eyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDhmZGViNmEyNDI0ODQ5Y2FjMTdiYmU5MGFhZTcxMmE4OWEyNGQxMDAuLmMwNWFlNmJl
NjI5ZGRiM2RmNjcyMjgyOTExMWNlOGI2NDAwZWU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZvaWQgYXV0b0F1
ZGlvU2lua0NoaWxkQWRkZWRDYWxsYmFjayhHc3RDaGlsZFByb3h5KiwgR09iamVjdCogb2JqZWN0
LCBnY2gKICAgICAgICAgZ19vYmplY3Rfc2V0KEdTVF9BVURJT19CQVNFX1NJTksob2JqZWN0KSwg
ImJ1ZmZlci10aW1lIiwgc3RhdGljX2Nhc3Q8Z2ludDY0PigxMDAwMDApLCBudWxscHRyKTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSB1c2Ugb2YgaW5wdXREZXZp
Y2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNjAsNyArNjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFj
ayYgY2FsbAogICAgIGlmIChudW1iZXJPZk91dHB1dENoYW5uZWxzICE9IDIpCiAgICAgICAgIExP
RyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgldSwgJXUsICVmKSAtIHVuaGFuZGxl
ZCBvdXRwdXQgY2hhbm5lbHMiLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcj4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoY2FsbGJhY2ssIHNhbXBsZVJhdGUp
KTsKIH0KIAogZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkKQEAg
LTE2NSw3ICsxNjUsNyBAQCBnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5k
bGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXZv
aWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYp
CiB7CiAgICAgQVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKICAgICBpZiAoIW1fYXVkaW9T
aW5rQXZhaWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXgg
Y2ZlNjg5MjA4ZDA5NjhhNTFhOGJiMWQxZTg3ZjZlMTlkMGYyMzE2Ni4uZDU1MTA0Yzg4Y2NiY2Rm
ZmZmOTdjNGU3YTQ5NDk4NmY5OTZiZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZpcnR1
YWwgfkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKTsKIAotICAgIHZvaWQgc3RhcnQoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4m
JiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlp
bmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDlkYWE3ZDAxNDFkODEwNGU0ZjVjNGMyNjQ4
YmM4YzZiZTUyNmMwYzguLjVhMTJjZGU0ZmNkZmM1N2ZhZDQyYjdkOWU4ZmU3MzIwNDM1MDlkNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDUsOCArNDUsOSBAQCBNb2NrQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssCiAKIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6On5Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hKCkgPSBkZWZhdWx0OwogCi12b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0
YXJ0KCkKK3ZvaWQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CisgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KTsKICAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgeyBtX251bWJlck9mRnJhbWVz
VG9Qcm9jZXNzIC8gc2FtcGxlUmF0ZSgpIH0pOwogICAgIHNldElzUGxheWluZyh0cnVlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmgKaW5kZXggZDRlYWU4MzM0MzVjMGE2MDQ1NWVkMGI5NjkyNTY4YzhlYzYz
ZjM2ZC4uYThkMjhjNGVkMWJiZWZmZDMzMDk0NTBkYWFmMzI5ZWJhMjUzNGMxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmgKQEAgLTM4LDEyICszOCwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiBjbGFz
cyBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGluYXRp
b25Db2NvYSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkgeyByZXR1cm4gbWFrZVVuaXF1ZTxNb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgc2FtcGxlUmF0ZSk7IH0KKyAgICBzdGF0
aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywgc2FtcGxlUmF0ZSkpOworICAgIH0K
KwogICAgIFdFQkNPUkVfRVhQT1JUIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0Nh
bGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnQo
KSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKICAgICB2b2lkIHRpY2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggYjJm
MzMxMmNmNGIwNDYxYjg3ZmFhYWMzOWNkNDJhMDYzZTU4YWM3My4uMWZlOTM5ODdlZjk2MWZkZmJl
MzhmNDdjYTY3MWFmNWZkYTk4ZDlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU0NCw0ICs1NDQsOSBAQCBSZWZlcnJlclBvbGljeSBXb3Jr
ZXJHbG9iYWxTY29wZTo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAogICAgIHJldHVybiBtX3JlZmVy
cmVyUG9saWN5OwogfQogCitUaHJlYWQqIFdvcmtlckdsb2JhbFNjb3BlOjp1bmRlcmx5aW5nVGhy
ZWFkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aHJlYWQudGhyZWFkKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaAppbmRleCBiZDljZjE0MGRkNTJmYjg0OThiOWZhNDEwNjBjOTNhYmZhNjgzODVlLi45MGRm
M2I2YWYzZDYzZWM2MWFlYzlhMTIzYzA4NzdlNzllMzRiMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
SW1hZ2VCaXRtYXAuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlICJXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIuaCIKQEAgLTU5LDcgKzYwLDcgQEAgbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJD
b25uZWN0aW9uUHJveHk7CiB9CiAKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJl
ZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2Vy
R2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMgeworY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1
YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzLCBwdWJsaWMgV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyR2xv
YmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlKCk7CkBA
IC04NSwxMyArODYsMTUgQEAgcHVibGljOgogICAgIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbiYg
c3dDbGllbnRDb25uZWN0aW9uKCk7CiAjZW5kaWYKIAotICAgIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CisgICAgV29ya2VyU2NyaXB0
Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KICAg
ICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdCA9IG51bGxwdHI7IH0KIAogICAgIFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biAqbV9pbnNwZWN0b3JDb250cm9sbGVyOyB9CiAKICAgICBXb3JrZXJUaHJlYWQmIHRocmVhZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkOyB9CiAKKyAgICBUaHJlYWQqIHVuZGVybHlpbmdUaHJl
YWQoKSBjb25zdCBmaW5hbDsKKwogICAgIHVzaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhh
c1BlbmRpbmdBY3Rpdml0eTsKIAogICAgIHZvaWQgcG9zdFRhc2soVGFzayYmKSBmaW5hbDsgLy8g
RXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KQEAg
LTExOSw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgYm9vbCBpc0Nsb3NpbmcoKSB7IHJldHVy
biBtX2Nsb3Npbmc7IH0KKyAgICBib29sIGlzQ2xvc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY2xvc2luZzsgfQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NTQ4ZTA4NDhiZTM1MjJiNmFkOWMzMjg1MzM5NzQ2YzdjMzk3NDI4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCisKK25hbWVz
cGFjZSBXVEYgeworY2xhc3MgVGhyZWFkOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBXVEY6OlRocmVhZCogdW5kZXJseWluZ1RocmVh
ZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgPSAw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZjliZjgzZTkzMGRkMTY1ZDhhMzMwNDcwNTJhZDU1ZDIyZmFmYTc4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
dW5Mb29wVGltZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHJl
bGVhc2VIZWFwQWNjZXNzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhY3F1aXJlSGVhcEFjY2Vz
cygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6
OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6
OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBpc1Rl
cm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKaW5kZXggNjZlY2Q1
MzZmODEzZDAyOWM0OTdmMWFlYTdmMjE5ZWRmYzc1YjM3NS4uYmI2MWZjNWYyYTk3ZGI4NGIxMTNi
ZTIyM2M3YTdhZGM3MTliNDk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxv
b3AuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgog
I2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKLSNp
bmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAKICNpZiBVU0UoR0xJQikK
QEAgLTEzMiw3ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIElzRm9yRGVidWdnaW5nIG1faXNGb3JE
ZWJ1Z2dpbmcgeyBJc0ZvckRlYnVnZ2luZzo6Tm8gfTsKIH07CiAKLXZvaWQgV29ya2VyUnVuTG9v
cDo6cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpy
dW4oV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNl
dHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpObyk7CiAgICAg
TW9kZVByZWRpY2F0ZSBtb2RlUHJlZGljYXRlKGRlZmF1bHRNb2RlKCkpOwpAQCAtMTQzLDEzICsx
NDMsMTMgQEAgdm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRl
eHQpCiAgICAgcnVuQ2xlYW51cFRhc2tzKGNvbnRleHQpOwogfQogCi1NZXNzYWdlUXVldWVXYWl0
UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluRGVidWdnZXJNb2RlKFdvcmtlckdsb2JhbFNjb3Bl
JiBjb250ZXh0KQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRl
YnVnZ2VyTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4dCkKIHsKICAgICBS
dW5Mb29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Olll
cyk7CiAgICAgcmV0dXJuIHJ1bkluTW9kZSgmY29udGV4dCwgTW9kZVByZWRpY2F0ZSB7IGRlYnVn
Z2VyTW9kZSgpIH0sIFdhaXRGb3JNZXNzYWdlKTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3Vs
dCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVz
dWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAgICBB
U1NFUlQobW9kZSAhPSBkZWJ1Z2dlck1vZGUoKSk7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0
aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpObyk7CkBAIC0xNTgsMTAgKzE1OCwx
MCBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3Jr
ZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLU1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2Jh
bFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2Rl
IHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1v
ZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNh
dGUmIHByZWRpY2F0ZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQp
OwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJy
ZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51bmRlcmx5aW5nVGhyZWFkKCkgPT0gJlRocmVh
ZDo6Y3VycmVudCgpKTsKIAogICAgIEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uQ2FsbGJhY2sgdGltZXJBZGRlZFRhc2sgPSBXVEY6OmNyZWF0ZVNoYXJlZFRhc2s8SlNDOjpK
U1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25UeXBlPihbdGhpc10gewogICAgICAgICAv
LyBXZSBkb24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBoZXJlLCB3ZSBqdXN0IHdhbnQgdG8gbG9v
cCBhcm91bmQgcnVuSW5Nb2RlCkBAIC0xODYsMTMgKzE4NiwxMyBAQCBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4
dCwgY29ucwogICAgIGlmICh3YWl0TW9kZSA9PSBXYWl0Rm9yTWVzc2FnZSAmJiBwcmVkaWNhdGUu
aXNEZWZhdWx0TW9kZSgpICYmIG1fc2hhcmVkVGltZXItPmlzQWN0aXZlKCkpCiAgICAgICAgIHRp
bWVvdXREZWxheSA9IHN0ZDo6bWluKHRpbWVvdXREZWxheSwgbV9zaGFyZWRUaW1lci0+ZmlyZVRp
bWVEZWxheSgpKTsKIAotICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBj
b250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3Jp
cHQoKSkgewogICAgICAgICBzY3JpcHQtPnJlbGVhc2VIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNj
cmlwdC0+YWRkVGltZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KICAg
ICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIHRhc2sgPSBtX21lc3Nh
Z2VRdWV1ZS53YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQocmVzdWx0LCBwcmVkaWNh
dGUsIHRpbWVvdXREZWxheSk7Ci0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGNvbnRleHQt
PnNjcmlwdCgpKSB7CiAgICAgICAgIHNjcmlwdC0+YWNxdWlyZUhlYXBBY2Nlc3MoKTsKICAgICAg
ICAgc2NyaXB0LT5yZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVkVGFzayk7CiAg
ICAgfQpAQCAtMjIzLDEwICsyMjMsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJS
dW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhX
b3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuQ2xlYW51
cFRhc2tzKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIEFTU0VS
VChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRo
cmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgp
ID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAgICAgQVNTRVJUKG1fbWVzc2FnZVF1ZXVlLmtpbGxl
ZCgpKTsKIAogICAgIHdoaWxlICh0cnVlKSB7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBXb3Jr
ZXJSdW5Mb29wOjpwb3N0RGVidWdnZXJUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JiB0YXNrKQogICAgIHBvc3RUYXNrRm9yTW9kZShXVEZNb3ZlKHRhc2spLCBkZWJ1Z2dlck1vZGUo
KSk7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9ybVRhc2soV29ya2VyR2xv
YmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNr
KFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIGlmICgoIWNvbnRl
eHQtPmlzQ2xvc2luZygpICYmIGNvbnRleHQtPnNjcmlwdCgpICYmICFjb250ZXh0LT5zY3JpcHQo
KS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB8fCBtX3Rhc2suaXNDbGVhbnVwVGFzaygpKQog
ICAgICAgICBtX3Rhc2sucGVyZm9ybVRhc2soKmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuaAppbmRleCBhOGM5ZGViZDgwZDgwOTk1NGE3YTlkNjkwZjc3NDA2ZDI1
MjgyNjY4Li5lZTI2YjM3ZjI5OWNhNjk5YzA0YzBiMWM3NDQxNTA0ODA4NzE1N2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgTW9kZVByZWRpY2F0ZTsKLSAgICBjbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZTsKKyAgICBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKICAg
ICBjbGFzcyBXb3JrZXJTaGFyZWRUaW1lcjsKIAogICAgIGNsYXNzIFdvcmtlclJ1bkxvb3AgewpA
QCAtNDcsMTMgKzQ3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfldvcmtlclJ1
bkxvb3AoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEJsb2NraW5nIGNhbGwuIFdhaXRzIGZvciB0
YXNrcyBhbmQgdGltZXJzLCBpbnZva2VzIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIHZvaWQgcnVu
KFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgIHZvaWQgcnVuKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKik7CiAKICAgICAgICAgZW51bSBXYWl0TW9kZSB7IFdhaXRGb3JNZXNzYWdlLCBE
b250V2FpdEZvck1lc3NhZ2UgfTsKIAogICAgICAgICAvLyBXYWl0cyBmb3IgYSBzaW5nbGUgdGFz
ayBhbmQgcmV0dXJucy4KLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUo
V29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlID0gV2FpdEZv
ck1lc3NhZ2UpOwotICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluRGVidWdnZXJN
b2RlKFdvcmtlckdsb2JhbFNjb3BlJik7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2Rl
LCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYpOwogCiAg
ICAgICAgIHZvaWQgdGVybWluYXRlKCk7CiAgICAgICAgIGJvb2wgdGVybWluYXRlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVzc2FnZVF1ZXVlLmtpbGxlZCgpOyB9CkBAIC03Myw3ICs3Myw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgbW9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9kZTsgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICB2b2lk
IHBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgICAgICB2b2lkIHBlcmZv
cm1UYXNrKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7CiAKICAgICAgICAgICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgbV90YXNrOwogICAgICAgICAgICAgU3RyaW5nIG1fbW9k
ZTsKQEAgLTgzLDExICs4MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRl
OgogICAgICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcFNldHVwOwotICAgICAgICBNZXNzYWdlUXVl
dWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVk
aWNhdGUmLCBXYWl0TW9kZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5N
b2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiwgY29uc3QgTW9kZVByZWRpY2F0ZSYsIFdh
aXRNb2RlKTsKIAogICAgICAgICAvLyBSdW5zIGFueSBjbGVhbiB1cCB0YXNrcyB0aGF0IGFyZSBj
dXJyZW50bHkgaW4gdGhlIHF1ZXVlIGFuZCByZXR1cm5zLgogICAgICAgICAvLyBUaGlzIHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBjb250ZXh0IGlzIGNsb3NlZCBvciBsb29wIGhhcyBi
ZWVuIHRlcm1pbmF0ZWQuCi0gICAgICAgIHZvaWQgcnVuQ2xlYW51cFRhc2tzKFdvcmtlckdsb2Jh
bFNjb3BlKik7CisgICAgICAgIHZvaWQgcnVuQ2xlYW51cFRhc2tzKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKik7CiAKICAgICAgICAgYm9vbCBpc0JlaW5nRGVidWdnZWQoKSBjb25zdCB7IHJl
dHVybiBtX2RlYnVnQ291bnQgPj0gMTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3Bw
CmluZGV4IDNkNmUwYjdhZjAxZTIxODVlMWM5ZmY5ZGIwN2ZmZDMwZWRkZDIxNzguLjM5MDhiZGYz
YTI5NmM4MWI2ZjRiYThlOGUwOGUzZmM1ODJlZTVlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXQuY3BwCkBAIC0yOCwyNyArMjgsNzYgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgotI2luY2x1ZGUgIldvcmtsZXRPcHRpb25zLmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgi
CisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2Jh
bFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisjaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoV29ya2xldCk7CiAKLVJlZjxXb3JrbGV0PiBXb3JrbGV0OjpjcmVhdGUoKQorV29ya2xldDo6
V29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtsZXQoKSk7CiB9CiAKLVdvcmts
ZXQ6OldvcmtsZXQoKQorV29ya2xldDo6fldvcmtsZXQoKSA9IGRlZmF1bHQ7CisKK0RvY3VtZW50
KiBXb3JrbGV0Ojpkb2N1bWVudCgpCit7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIv
d29ya2xldHMtMS8jZG9tLXdvcmtsZXQtYWRkbW9kdWxlCit2b2lkIFdvcmtsZXQ6OmFkZE1vZHVs
ZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTFN0cmluZywgV29ya2xldE9wdGlvbnMmJiBvcHRpb25z
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBp
cyBkZXRhY2hlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFVSTCBtb2R1
bGVVUkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwobW9kdWxlVVJMU3RyaW5nKTsKKyAgICBpZiAo
IW1vZHVsZVVSTC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgU3ludGF4RXJyb3IsICJNb2R1bGUgVVJMIGlzIGludmFsaWQiX3MgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAobV9wcm94aWVzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9w
cm94aWVzLmFwcGVuZFZlY3RvcihjcmVhdGVHbG9iYWxTY29wZXMoKSk7CisKKyAgICBhdXRvIHBl
bmRpbmdUYXNrcyA9IFdvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShw
cm9taXNlKSwgbV9wcm94aWVzLnNpemUoKSk7CisgICAgbV9wZW5kaW5nVGFza3NTZXQuYWRkKHBl
bmRpbmdUYXNrcy5jb3B5UmVmKCkpOworCisgICAgZm9yIChhdXRvJiBwcm94eSA6IG1fcHJveGll
cykgeworICAgICAgICBwcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUo
W3BlbmRpbmdUYXNrcyA9IHBlbmRpbmdUYXNrcy5jb3B5UmVmKCksIG1vZHVsZVVSTCA9IG1vZHVs
ZVVSTC5pc29sYXRlZENvcHkoKSwgY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzLCBw
ZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb3duY2FzdDxXb3Jr
bGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmZldGNoQW5kSW52b2tlU2NyaXB0KG1vZHVsZVVSTCwg
Y3JlZGVudGlhbHMsIFtwZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyksIHBlbmRp
bmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3MpLCBleGNlcHRpb24gPSBjcm9z
c1RocmVhZENvcHkoZXhjZXB0aW9uKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5n
QWN0aXZpdHkpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1Rhc2tzLT5hYm9ydChXVEZNb3ZlKCpl
eGNlcHRpb24pKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgcGVuZGluZ1Rhc2tzLT5kZWNyZW1lbnRDb3VudGVyKCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CisgICAgfQorfQorCit2b2lkIFdvcmtsZXQ6OmZpbmlzaFBlbmRpbmdUYXNrcyhXb3Jr
bGV0UGVuZGluZ1Rhc2tzJiB0YXNrcykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChtX3BlbmRpbmdUYXNrc1NldC5jb250YWlucygmdGFza3MpKTsKKworICAgIG1f
cGVuZGluZ1Rhc2tzU2V0LnJlbW92ZSgmdGFza3MpOwogfQogCi12b2lkIFdvcmtsZXQ6OmFkZE1v
ZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYm
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorY29uc3QgY2hhciogV29ya2xl
dDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEFkZCBwcm9w
ZXIgaW1wbGVtZW50YXRpb24uCi0gICAgVU5VU0VEX1BBUkFNKG1vZHVsZVVSTCk7Ci0gICAgcHJv
bWlzZS5yZXNvbHZlKCk7CisgICAgcmV0dXJuICJXb3JrbGV0IjsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oCmluZGV4IGIyYmVkYzY1ODY1Yjc0
ZjVmOTk1NmYwNGNmY2NjM2Y4MzUxOWYyZTEuLjQxNjg2NzRjNzNiMjk5MDliYTYyOTYyNTcyMWIz
ODA1M2UyMjdiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKQEAgLTI1LDI3ICsyNSw0
NSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIlNjcmlw
dFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgIldvcmtsZXRPcHRpb25zLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eTsKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3M7CiAK
LXN0cnVjdCBXb3JrbGV0T3B0aW9uczsKLQotY2xhc3MgV29ya2xldCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKK2NsYXNzIFdvcmtsZXQgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFdvcmtsZXQ+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
V29ya2xldD4gY3JlYXRlKCk7Ci0gICAgdmlydHVhbCB+V29ya2xldCgpID0gZGVmYXVsdDsKKyAg
ICB2aXJ0dWFsIH5Xb3JrbGV0KCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZE1vZHVsZShE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdmlydHVhbCB2b2lkIGFkZE1vZHVsZShjb25z
dCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYpOworCisgICAgdm9pZCBmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdU
YXNrcyYpOworICAgIERvY3VtZW50KiBkb2N1bWVudCgpOworCisgICAgY29uc3QgVmVjdG9yPFJl
ZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+JiBwcm94aWVzKCkgY29uc3QgeyByZXR1cm4gbV9w
cm94aWVzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBXb3JrbGV0KCk7CisgICAgZXhwbGljaXQgV29y
a2xldChEb2N1bWVudCYpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgVmVjdG9yPFJlZjxXb3Jr
bGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpID0gMDsKKworICAgIC8v
IEFjdGl2ZURPTU9iamVjdC4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CisKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4g
bV9wcm94aWVzOworICAgIEhhc2hTZXQ8UmVmUHRyPFdvcmtsZXRQZW5kaW5nVGFza3M+PiBtX3Bl
bmRpbmdUYXNrc1NldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldC5pZGwKaW5kZXggMGI3NzRjMjc0YWFmMjBlMGNjODgzNzcyNzFjNzE2YTAw
ZmFmOWU2MS4uMjkzY2YwNmUxNTU2ZTliNTc3YTJhNGQxOTU4OGQxNjgwNmFiZWU1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKQEAgLTI0LDggKzI0LDEwIEBACiAqLwogCiBbCisg
ICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEdsb2JhbD1Xb3Jr
bGV0LAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uCiBdIGludGVyZmFjZSBXb3JrbGV0IHsKLSAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnRdIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3Ry
aW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CisgICAgUHJv
bWlzZTx1bmRlZmluZWQ+IGFkZE1vZHVsZShVU1ZTdHJpbmcgbW9kdWxlVVJMLCBvcHRpb25hbCBX
b3JrbGV0T3B0aW9ucyBvcHRpb25zKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCAzYjc1ODJhZmZjZDA0YjE0NjI5MGYzYTc0Njg2
NzM0YWM2OTBmZWYyLi5mYjhiYWE1ZGVmYzllODc1M2YwYzQyZWVjZmY5YjY0ZWUzMjM0MDE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAg
LTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0R2xv
YmFsU2NvcGUuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgpAQCAtMzYsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luUG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJX
b3JrZXJFdmVudExvb3AuaCIKLSNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFj
ay5oPgpAQCAtNDcsMTAgKzQ0LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrbGV0R2xvYmFsU2NvcGUpOwogCitXb3JrbGV0
R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCkKKyAg
ICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHRoaXMpKQor
ICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwg
bV91cmwod2luZG93VVJMKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2Jh
bFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRk
UmVzdWx0KTsKKworICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9s
aWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7Cit9CisKIFdvcmtsZXRHbG9iYWxT
Y29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPEpTQzo6Vk0+
JiYgdm0sIFNjcmlwdFNvdXJjZUNvZGUmJiBjb2RlKQogICAgIDogbV9kb2N1bWVudChtYWtlV2Vh
a1B0cihkb2N1bWVudCkpCiAgICAgLCBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRD
b250cm9sbGVyPihXVEZNb3ZlKHZtKSwgdGhpcykpCiAgICAgLCBtX3RvcE9yaWdpbihTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3VybChjb2RlLnVybCgpKQogICAgICwg
bV9jb2RlKFdURk1vdmUoY29kZSkpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBhbGxXb3JrbGV0
R2xvYmFsU2NvcGVzU2V0KCkuYWRkKHRoaXMpOwpAQCAtNjEsNyArNzAsNyBAQCBXb3JrbGV0R2xv
YmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6
OlZNPiYmIHZtLCBTYwogICAgIEFTU0VSVChkb2N1bWVudC5wYWdlKCkpOwogCiAgICAgc2V0U2Vj
dXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShtX3RvcE9yaWdp
bi5jb3B5UmVmKCkpKTsKLSAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxD
b250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IG1fY29kZS51cmwoKSB9LCAqdGhpcykpOworICAg
IHNldENvbnRlbnRTZWN1cml0eVBvbGljeShtYWtlVW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGlj
eT4oVVJMIHsgdGhpcy0+dXJsKCkgfSwgKnRoaXMpKTsKIH0KIAogV29ya2xldEdsb2JhbFNjb3Bl
Ojp+V29ya2xldEdsb2JhbFNjb3BlKCkKQEAgLTExMyw3ICsxMjIsOCBAQCBTdHJpbmcgV29ya2xl
dEdsb2JhbFNjb3BlOjp1c2VyQWdlbnQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKIHZvaWQgV29y
a2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSgpCiB7Ci0gICAgbV9zY3JpcHQtPmV2YWx1YXRlKG1f
Y29kZSk7CisgICAgaWYgKG1fY29kZSkKKyAgICAgICAgbV9zY3JpcHQtPmV2YWx1YXRlKCptX2Nv
ZGUpOwogfQogCiBib29sIFdvcmtsZXRHbG9iYWxTY29wZTo6aXNKU0V4ZWN1dGlvbkZvcmJpZGRl
bigpIGNvbnN0CkBAIC0xMzUsNyArMTQ1LDcgQEAgVVJMIFdvcmtsZXRHbG9iYWxTY29wZTo6Y29t
cGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwsIEZvcmNlVVRGOCkgY29uc3QKIHsKICAgICBpZiAo
dXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7Ci0gICAgcmV0dXJuIFVSTChtX2Nv
ZGUudXJsKCksIHVybCk7CisgICAgcmV0dXJuIFVSTCh0aGlzLT51cmwoKSwgdXJsKTsKIH0KIAog
dm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVy
LCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQpAQCAt
MTcxLDUgKzE4MSwxMSBAQCBSZWZlcnJlclBvbGljeSBXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZmVy
cmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4gUmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXI7
CiB9CiAKK3ZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdChjb25z
dCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50YXRpb24uCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5oCmluZGV4IDI1ZDU0OWFjNGEwYWE2ZmY3NTI4NzU1ZDcwNDdjODE0ZWU3ZGM0MDQuLjk4
MTQxNTlkZTJiNTAzYTgwOGM4MDg3MDQyZjY3MzUzNjdiZmYzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0yNiwzMCArMjYsMzIgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
ICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVu
dExvb3BUYXNrR3JvdXA7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7Ci1jbGFzcyBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjsKIAogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZSB7
IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNsYXNzIFdvcmtsZXRHbG9i
YWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxTY29wZT4sIHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7
CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xv
YmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmts
ZXRHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNjb3Bl
KCk7CkBAIC01NywxMSArNTksMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFdvcmtsZXRHbG9iYWxT
Y29wZXNTZXQgPSBIYXNoU2V0PGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSo+OwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0JiBhbGxXb3JrbGV0R2xvYmFs
U2NvcGVzU2V0KCk7CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICB2aXJ0dWFs
IGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogCiAg
ICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExvb3AoKSBmaW5hbDsKIAotICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2RlLnVybCgpOyB9CisgICAgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQogCiAgICAgdm9pZCBldmFs
dWF0ZSgpOwogCkBAIC03MCw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVk
OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICBXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0
KCk7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCkBAIC03OSw2ICs4NiwxMCBAQCBwdWJs
aWM6CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CiAKKyAgICAvLyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS4KKyAgICBU
aHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRy
OyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQ2xvc2lu
ZzsgfQorCiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgYm9vbCBpc1NlY3VyZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogCkBAIC04Niw3ICs5NywxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZUZvckRlc3RydWN0aW9uKCk7CiAKKyAgICB2b2lkIGZldGNoQW5kSW52b2tlU2NyaXB0
KGNvbnN0IFVSTCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CisgICAgV29ya2xl
dEdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgd2luZG93VVJMKTsKICAgICBXb3JrbGV0R2xvYmFsU2Nv
cGUoRG9jdW1lbnQmLCBSZWY8SlNDOjpWTT4mJiwgU2NyaXB0U291cmNlQ29kZSYmKTsKICAgICBX
b3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgV29ya2xldEdsb2JhbFNjb3BlJikgPSBkZWxldGU7CiAg
ICAgV29ya2xldEdsb2JhbFNjb3BlKFdvcmtsZXRHbG9iYWxTY29wZSYmKSA9IGRlbGV0ZTsKQEAg
LTEzNiw4ICsxNTAsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V29ya2VyRXZlbnRMb29wPiBt
X2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dyb3VwPiBtX2Rl
ZmF1bHRUYXNrR3JvdXA7CiAKKyAgICBVUkwgbV91cmw7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3Mg
bV9qc1J1bnRpbWVGbGFnczsKLSAgICBTY3JpcHRTb3VyY2VDb2RlIG1fY29kZTsKKyAgICBPcHRp
b25hbDxTY3JpcHRTb3VyY2VDb2RlPiBtX2NvZGU7CisgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC0xNDUsNCArMTYxLDMgQEAg
cHJpdmF0ZToKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V29ya2xldEds
b2JhbFNjb3BlKQogc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2Nv
cGUoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAppbmRleCBkNzU5ZjBjZTFk
MTZmODY5MTg2MDEyNzc2ZjBkYjE2YjYxYmFhNDc4Li5iZjA3MTM4NGEzZjMwOGZmNmM2NDVjOTU4
NGNiM2IxY2I5ZTVlMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5pZGwKQEAgLTI2LDggKzI2LDYgQEAKIFsKICAgICBDdXN0b21Qcm94eVRvSlNP
YmplY3QsCiAgICAgRXhwb3NlZD1Xb3JrbGV0LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9Q1NTUGFp
bnRpbmdBUEksCi0gICAgQ29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSSwKICAgICBKU0xlZ2Fj
eVBhcmVudD1KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UsCiAgICAgSW1wbGljaXRUaGlzLAogICAg
IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFjNWQ5MWNj
N2QwMjQyMGI1ZmFmZjIxOTFjMGVlZjhmZjlhNWQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgKQEAgLTAsMCArMSw0
NiBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOworCitjbGFzcyBXb3JrbGV0R2xvYmFs
U2NvcGVQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eT4geworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZVByb3h5
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2xl
dEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5n
JiBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkoKSBjb25zdCA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
ZmU1ZDc2MWFmNDZmMjYxNDExNzkwNGFjMTA0YzMwNDkxMTQ1ZDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApAQCAtMCww
ICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5nVGFza3MuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGVuZGluZ1Rhc2tzOjpXb3JrbGV0UGVuZGlu
Z1Rhc2tzKFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UsIGludCBjb3VudGVyKQorICAgIDogbV93b3JrbGV0KG1ha2VXZWFrUHRyKHdvcmtsZXQpKQor
ICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCisgICAgLCBtX2NvdW50ZXIoY291bnRl
cikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworfQorCit2b2lkIFdvcmtsZXRQZW5k
aW5nVGFza3M6OmFib3J0KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKK3sKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9PSAtMSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jb3VudGVyID0gLTE7CisgICAgbV9wcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4
Y2VwdGlvbikpOworICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgIG1fd29ya2xldC0+ZmluaXNo
UGVuZGluZ1Rhc2tzKCp0aGlzKTsKK30KKwordm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpkZWNy
ZW1lbnRDb3VudGVyKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYg
KG1fY291bnRlciA9PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLS1tX2NvdW50ZXI7Cisg
ICAgaWYgKCFtX2NvdW50ZXIpIHsKKyAgICAgICAgbV9wcm9taXNlLnJlc29sdmUoKTsKKyAgICAg
ICAgaWYgKG1fd29ya2xldCkKKyAgICAgICAgICAgIG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rh
c2tzKCp0aGlzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzNk
NmJiYWJlMGU5YjkzZTI4M2EzMjg2NzE1Y2E4OWRjMjZjMDljCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXQ7CisKKy8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy93b3JrbGV0cy8jcGVuZGluZy10YXNrcy1zdHJ1Y3QKK2NsYXNzIFdvcmtsZXRQZW5k
aW5nVGFza3MgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xldFBlbmRpbmdUYXNr
cz4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2xldFBlbmRpbmdUYXNrcz4gY3JlYXRl
KFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIGlu
dCBjb3VudGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xldFBl
bmRpbmdUYXNrcyh3b3JrbGV0LCBXVEZNb3ZlKHByb21pc2UpLCBjb3VudGVyKSk7CisgICAgfQor
CisgICAgdm9pZCBhYm9ydChFeGNlcHRpb24mJik7CisgICAgdm9pZCBkZWNyZW1lbnRDb3VudGVy
KCk7CisKK3ByaXZhdGU6CisgICAgV29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYsIGludCBjb3VudGVyKTsKKworICAgIFdlYWtQdHI8V29ya2xl
dD4gbV93b3JrbGV0OworICAgIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiBtX3Byb21pc2U7Cisg
ICAgaW50IG1fY291bnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCAyMGE2Zjg1NjE4NThhZGZiZTJlMmJjMThlYmY3MTUwYjk3YWQxNGY4Li4xN2RmNWUxZjNjZjA2
NTcxNGJjZWY3NWVkODVmY2FkNTM4ZjZlODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw4ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIK
IAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCisjaW5jbHVkZSAiSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgpAQCAtNTYsNiArNTUsMTEg
QEAgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJlZjxW
TT4mJiB2bSwgV29ya2xldEdsb2JhbFNjb3AKICAgICBKU1ZNQ2xpZW50RGF0YTo6aW5pdE5vcm1h
bFdvcmxkKG1fdm0uZ2V0KCkpOwogfQogCitXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXIoV29ya2xldEdsb2JhbFNjb3BlKiB3b3JrbGV0R2xvYmFsU2NvcGUp
CisgICAgOiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihWTTo6Y3JlYXRlKCksIHdvcmtsZXRHbG9i
YWxTY29wZSkKK3sKK30KKwogV29ya2xldFNjcmlwdENvbnRyb2xsZXI6On5Xb3JrbGV0U2NyaXB0
Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0oKSk7CkBAIC0xNDUsMTAg
KzE0OSwxOSBAQCB2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAg
ICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5B
QkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgaWYgKGlzPFBhaW50V29ya2xldEdsb2JhbFNjb3Bl
PihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsKICAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFz
czxKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlUHJvdG90eXBlLCBKU1BhaW50V29ya2xldEdsb2Jh
bFNjb3BlLCBQYWludFdvcmtsZXRHbG9iYWxTY29wZT4oKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoaXM8QXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgeworICAgICAgICBpbml0U2Ny
aXB0V2l0aFN1YmNsYXNzPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUsIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
QEAgLTE5Niw1ICsyMDksNjIgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2V0RXhj
ZXB0aW9uKEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24pCiAgICAgdGhyb3dFeGNlcHRpb24obGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7CiB9CiAKK3ZvaWQgV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OnJlbGVhc2VIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLnJl
bGVhc2VBY2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWNxdWly
ZUhlYXBBY2Nlc3MoKQoreworICAgIG1fdm0tPmhlYXAuYWNxdWlyZUFjY2VzcygpOworfQorCit2
b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjphZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6
OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQorewor
ICAgIGF1dG8gcHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGltZXIpIHsKKyAg
ICAgICAgaWYgKCF0aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGltZXItPmFk
ZFRpbWVyU2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisgICAgcHJvY2Vzc1Rp
bWVyKG1fdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVy
KG1fdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1f
dm0tPmRlZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6
VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NU
aW1lciA9IFsmXSAoSlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGltZXIp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRpbWVyLT5yZW1vdmVUaW1lclNldE5vdGlm
aWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsKKworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFw
LmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVk
ZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdv
cmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnNjaGVk
dWxlRXhlY3V0aW9uVGVybWluYXRpb24oKQoreworICAgIGlmIChtX2lzVGVybWluYXRpbmdFeGVj
dXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHsKKyAgICAgICAgLy8gVGhlIG11dGV4IHBy
b3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQgb25jZQorICAgICAgICAvLyB0
ZXJtaW5hdGlvbiBpcyBzY2hlZHVsZWQsIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSB3aWxsCisg
ICAgICAgIC8vIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGF0IGxleGljYWxHbG9iYWxPYmplY3Qgd2hl
biBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAgICAgIG1faXNUZXJtaW5hdGlu
Z0V4ZWN1dGlvbiA9IHRydWU7CisgICAgfQorICAgIG1fdm0tPm5vdGlmeU5lZWRUZXJtaW5hdGlv
bigpOworfQorCitib29sIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTZWUgY29tbWVudHMgaW4gc2NoZWR1bGVFeGVjdXRp
b25UZXJtaW5hdGlvbiByZWdhcmRpbmcgbXV0ZXggdXNhZ2UuCisgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAgcmV0dXJuIG1faXNUZXJt
aW5hdGluZ0V4ZWN1dGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApp
bmRleCBlMzZkMmEyNDJiZjU0NjRmYTI3Y2YzZGE5YWI1Mjg0ZjAwMDRkNmVlLi42ZDQzY2U1Zjlm
ZmQyYTcwYWYwYmY2ZTVhZWU1NGNkOGZhYzcyZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI1LDggKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1ZGUg
Ildvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVy
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CkBAIC00Niw5ICs0NSwxMSBA
QCBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZTsK
IGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50OwogCi1jbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJv
bGxlciB7CisvLyBGSVhNRTogV2Ugc2hvdWxkIHNoYXJlIG1vcmUgY29kZSB3aXRoIFdvcmtlclNj
cmlwdENvbnRyb2xsZXIuCitjbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciA6IHB1YmxpYyBX
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgorICAgIGV4cGxpY2l0IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxT
Y29wZSopOwogICAgIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJlZjxKU0M6OlZNPiYmLCBXb3Jr
bGV0R2xvYmFsU2NvcGUqKTsKICAgICB+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKTsKIApAQCAt
NjQsNiArNjUsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlzYWJsZVdlYkFzc2VtYmx5KGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlKTsKIAorICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSBmaW5hbDsK
KyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CisKKyAgICB2b2lkIGFkZFRpbWVy
U2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2Fs
bGJhY2spIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpK
U1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisKKyAgICB2
b2lkIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24oKTsKKyAgICBib29sIGlzVGVybWluYXRp
bmdFeGVjdXRpb24oKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0
cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8
SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2Vw
dGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIApAQCAtODcsNyArOTcsOCBAQCBwcml2YXRlOgogICAg
IFdvcmtsZXRHbG9iYWxTY29wZSogbV93b3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdvcmtsZXRDb25zb2xlQ2xpZW50PiBtX2NvbnNvbGVDbGllbnQ7CiAgICAgSlNDOjpT
dHJvbmc8SlNXb3JrbGV0R2xvYmFsU2NvcGU+IG1fd29ya2xldEdsb2JhbFNjb3BlV3JhcHBlcjsK
KyAgICBtdXRhYmxlIExvY2sgbV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2s7CisgICAgYm9vbCBt
X2lzVGVybWluYXRpbmdFeGVjdXRpb24geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YTEw
MWMzOTU5M2NjNGMxNTRjNzQ1ZjZkNzk3MzdhMDJhOTIzZjZkLi4wYjlhYjFkY2UzNGE1MjBkODJl
MmZhZDVmNWQwNmE4NjllZjc0ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAK
QEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICBzdG9wKCk7CiAgICAgfQogCi0gICAg
dm9pZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsgfQorICAgIHZvaWQgc3RhcnQo
KSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KHsgfSk7IH0KICAgICB2b2lkIHN0b3AoKSB7IG1fZGVz
dGluYXRpb24tPnN0b3AoKTsgfQogICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9kZXN0
aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KICAgICB1bnNpZ25lZCBmcmFtZXNQZXJCdWZmZXIoKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5mcmFtZXNQZXJCdWZmZXIoKSA7IH0KQEAgLTEy
NSw3ICsxMjUsNyBAQCBwcml2YXRlOgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
bV9jb25uZWN0aW9uOwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247Cisg
ICAgUmVmUHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CiAgICAgUmVmUHRyPFJl
bW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3du
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDA2OTQ1YmFm
ZDVkMTg5YzdhMGY5YzcyNDAyYmI4ODlkYzgwN2Y2ZjQuLjgyMTM4MDBiOWYxMGM1ODI2MGUwN2E3
OTBmN2NiMjBhN2UwZWEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
QEAgLTQzLDEwICs0MywxMCBAQCB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwog
dXNpbmcgQXVkaW9EZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb247CiB1c2lu
ZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLXN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAorUmVmPEF1ZGlvRGVzdGluYXRpb24+IFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssCiAgICAgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBs
ZVJhdGUpCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5PihjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51
bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkp
OwogfQogCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTc3LDggKzc3LDkgQEAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KCkKICAg
ICB9KTsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3Zv
aWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0
aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKIHsKKyAgICBtX2Rpc3Bh
dGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAogICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9E
ZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKQEAgLTg5LDE5ICs5MCwzMSBAQCB2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgpCiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
U3RvcEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbjo6UmVw
bHkobV9pc1BsYXlpbmcpLCAwKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBudWxs
cHRyOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVy
KGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICAvLyBGSVhNRTog
VGhpcyBkb2VzIHJlbmRlcmluZyBvbiB0aGUgbWFpbiB0aHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQg
aXMgbm90IGFjdGl2ZSwgd2hpY2ggaXMgbGlrZWx5IG5vdCBhIGdvb2QgaWRlYS4KKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9j
ZXNzKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CiAg
ICAgYXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxC
dWZmZXJzLnNpemUoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6
ZSgpOyArK2kpCiAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCop
YXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFt
ZXNUb1Byb2Nlc3MpOwogCi0gICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCks
IGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlv
bik7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIGF1dG8gZG9SZW5kZXIgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhdWRpb0J1cyA9IFdURk1vdmUoYXVk
aW9CdXMpLCBmcmFtZXNUb1Byb2Nlc3MgPSBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBv
dXRwdXRQb3NpdGlvbiA9IGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbl0geworICAgICAgICBt
X2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBvdXRw
dXRQb3NpdGlvbik7CisgICAgfTsKKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7
CisgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbZG9SZW5kZXIgPSBXVEZNb3ZlKGRv
UmVuZGVyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgfSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgZG9SZW5kZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFu
Z2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
aAppbmRleCBhZGE2ZmVlZmYzNzQzMGYzYzRkZDM3ZjEzYzdlM2E0ZTc2NmEzOWRhLi45MDdlY2Y1
YTc3ZjQyYjk0Nzg5MGJkZjNhMTdlMThlY2ZiNWFhNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEF1ZGlvQnVz
ID0gV2ViQ29yZTo6QXVkaW9CdXM7CiAgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29y
ZTo6QXVkaW9JT0NhbGxiYWNrOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERl
dmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIHN0YXRpYyBSZWY8QXVkaW9E
ZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSgpOwpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRj
aFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKICAg
ICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CiAgICAg
ZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsg
fQpAQCAtNzMsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVzUGVyQnVm
ZmVyIHsgMCB9OwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1fZGVzdGlu
YXRpb25JRDsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmU4NjFhMWU0ZTMxZTE0
NzgyYTJiOWU4MzE5OGMxNjdhNTk0NjExMy4uZDVhZWYxNTM0YWQyMzY1ZDIxMzdhMTdiNmY2ZDQ0
ZTFlZjg1MTllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7
CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2Vi
Q29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmlj
ZUlkLAorUmVmPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCmluZGV4IDgxN2M0YzI5YjE3
MzJmNDVmOTBlMjE1NWQ2NWNlZTg0N2MxN2JlZTIuLjZiN2I5Y2U2MDNhODczOWU3MWQ5MDQ3NWZj
Yzc4NzI2OGY2ZDlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1
ZGlvSU9DYWxsYmFjayYsCisgICAgUmVmPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0
ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKICAgICAgICAgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJy
aWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0KaW5kZXggZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNjNmJjYTdiNjUzYTY1MjdiNy4uZWJi
YjNiZWE2ZWRiYjQ3YmNiNGUyZDBiMjk3ZmNkMDVlYmE2MzI5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQpAQCAtNjksNyArNjksNyBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIGNsYXNzIFdlYk1l
ZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2YXRlOgogI2lm
IEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVB
dWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFj
aywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBzYW1wbGVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCA2MjM1ZDJjMWVkNmE2MDVjNmRiMzIxMGJhZTAxMGMwYWUyYjE1ODA0Li4z
N2M3MzI2NmUyM2U4ZDNkNzBhZmViYjY1MDE1NWYwMDY2NzhkYzgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMDUzLDYgKzMwNTMsNyBAQCAtICh2
b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKICAg
ICBzZXR0aW5ncy5zZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShtZWRpYVBsYXli
YWNrUmVxdWlyZXNVc2VyR2VzdHVyZSB8fCBbcHJlZmVyZW5jZXMgYXVkaW9QbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmVdKTsKIAogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0V2ViU1FMRGlzYWJsZWQoIVtwcmVmZXJlbmNlcyB3ZWJTUUxFbmFibGVkXSk7
CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBdWRpb1dv
cmtsZXRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBhdWRpb1dvcmtsZXRFbmFibGVkXSk7CiAgICAg
RGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRJc0F2YWlsYWJsZShbcHJlZmVyZW5jZXMg
ZGF0YWJhc2VzRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldExvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aChbcHJlZmVyZW5jZXMgX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aF0pOwogICAgIF9wcml2
YXRlLT5wYWdlLT5zZXRTZXNzaW9uSUQoW3ByZWZlcmVuY2VzIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWRdID8gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKaW5kZXggZGY0YTFmNzg1MDRkYmUyMzBhOTc3ZTk3ZmQyNTlkMjRlNGY5MjAzMS4uZTAzNDIz
ZDc1M2NiMTk4MGVlM2ViODg5MmZhMjg1MWVlNDk2MjUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogY2xhc3MgV2ViTWVk
aWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRl
CiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNr
LCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
aW5kaW5ncy9tYWluLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5
CmluZGV4IDMxYWVjMzgyZTdiYTNhM2FiZjlmMjcxMjJmYjg0ZTIwNTc4ODA3YzQuLjFkMDkxM2I0
ZWYwNTlhNGUxZTc5MDZjNWViNDlkZWRiNjY0NjQ1OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JpbmRpbmdzL21haW4ucHkKQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoK
ICAgICAgICAgICAgIGV4aXRfY29kZSA9IGUuZXhpdF9jb2RlCiAgICAgICAgIHJldHVybiBleGl0
X2NvZGUKIAotICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBp
bnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRh
bF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSk6CisgICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KHNl
bGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxl
bWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxl
LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWlu
dHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSk6CiAgICAgICAgIGlkbF9maWxlc19saXN0ID0gdGVtcGZpbGUubWtzdGVtcCgpCiAgICAgICAg
IGZvciBpbnB1dF9maWxlIGluIG9zLmxpc3RkaXIoaW5wdXRfZGlyZWN0b3J5KToKICAgICAgICAg
ICAgIChuYW1lLCBleHRlbnNpb24pID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dF9maWxlKQpAQCAt
OTgsNiArOTgsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgJy0tc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHNlcnZpY2V3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUnLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKKyAg
ICAgICAgICAgICAgICctLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScs
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAg
ICAgJy0tdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHRlc3RnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXZhbGlkYXRlQWdhaW5zdFBhcnNl
ciddCiAKQEAgLTIwMSw2ICsyMDIsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBz
ZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHdvcmtsZXRnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmlkbCcKICAgICAgICAgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lID0gJ1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAg
ICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdCaW5kaW5nVGVzdEdsb2JhbENvbnN0cnVjdG9y
cy5pZGwnCiAKICAgICAgICAgd29ya19kaXJlY3RvcnkgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKQEAg
LTIxMyw5ICsyMTUsMTAgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc2VydmljZXdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGly
ZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNl
cnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHdv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2Rp
cmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBwYWludHdv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2Rp
cmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBw
YWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCisgICAgICAgIGF1
ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rv
cnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAg
ICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtf
ZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3Rvcnks
IHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYgc2Vs
Zi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5
X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgICAg
IGlmIHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5
LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVw
ZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgICAgIHBy
aW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlLicp
CiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAgICAgICAgICAg
cmV0dXJuIC0xCkBAIC0yMzUsNiArMjM4LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAg
ICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYu
ZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRf
ZGlyZWN0b3J5LCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUp
OgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAgICAg
aWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5
LCBpbnB1dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSk6CisgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAg
ICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19k
aXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAK
</data>
<flag name="commit-queue"
          id="426065"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410194</attachid>
            <date>2020-09-30 19:46:21 -0700</date>
            <delta_ts>2020-09-30 19:49:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930194620.patch</filename>
            <type>text/plain</type>
            <size>164594</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5hM2UxZTYxZGJjZDExNWRkMmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFi
bGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAg
Y29uZGl0aW9uOiBFTkFCTEUoV0VCX0FVRElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0
TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVl
NDYzNTU0NmY3NmNmOTBlLi4xOTQzODAyM2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYs
NiArMTc2Nyw3IEBAIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChX
ZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJRVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFD
RV9JTkNMVURFX0RJUkVDVE9SSUVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMsOCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmlu
ZGluZ3MKICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAt
LXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfSkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5k
aW5ncykKIAogaWYgKEVOQUJMRV9XRUJJTlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFk
Y2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVk
MjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtMzMwLDYgKzMzMCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGEx
M2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTEsNCArMSw1IEBACiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhj
ZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJh
dGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRp
YVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXVkaW9UcmFja01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1
OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4yYzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYy
MDYwNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydQogU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAogUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1QID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNf
RklMRSA9ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApA
QCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkKICMKIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4s
JSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVS
TlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAk
KEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5D
SUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RF
UEVOREVOQ0lFUykKIAkkKGZvcmVhY2ggZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+
JChJRExfRklMRVNfVE1QKSQoTkwpKQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1f
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJ
TEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAt
LWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9N
QUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXBy
b2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkg
LS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNw
YWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0
cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxF
U19UTVApCiAKIEpTJS5jcHAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQo
SURMX0FUVFJJQlVURVNfRklMRSkgJChJRExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVf
QU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMy
MmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmVi
ZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVk
QXRSdW50aW1lPUF1ZGlvV29ya2xldCwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRh
YmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5
MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMuLmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0
NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldC5jcHAKQEAgLTMxLDE1ICszMSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1
ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1JlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigq
bmV3IEF1ZGlvV29ya2xldChkb2N1bWVudCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiB3b3JrbGV0OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xl
dChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitW
ZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7
CisgICAgLy8gV2ViQXVkaW8gdXNlcyBhIHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJu
IHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVk
aW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQoKQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1
ZGlvV29ya2xldDo6cHJveHkoKSBjb25zdAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5w
cm94aWVzKCk7CisgICAgaWYgKHByb3hpZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHBy
b3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1
ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQwNTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRk
NDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaApAQCAtMzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1
YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3Jl
YXRlKCk7CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
CisgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3Vt
ZW50Jik7CisKKyAgICAvLyBXb3JrbGV0LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNj
b3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmlkbAppbmRleCBiYzVlYThmMGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3
Li44MGM2YTcyNDAxODNjNDc1NzQ2MjljODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsy
OCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0
dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAg
ICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJl
Q29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyNjBlMjZmZDE4ODhh
NmU0Yzk1ZTc4OTQ1NjZkOTk3ZjYzNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSk7CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShB
dWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCisgICAgOiBXb3JrbGV0R2xvYmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwpCisg
ICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cit9
CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSA9
IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlpbmdU
aHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJkMjMz
YWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVjdCBX
b3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0IFdv
cmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7Cisg
ICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1bmRl
cmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
KTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JF
R0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJu
IGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcwOTJh
NGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRp
b1dvcmtsZXQsCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb05h
dGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVF
eG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblByb3Rv
dHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNlIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJbXBs
ZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcy
MTYxNGJiY2EyYmM5YTA1ZmIwZTk0YmFmMWNlYmI2OGM5M2FhMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVESU8p
CisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUgIkF1
ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmtsZXQobWFr
ZVdlYWtQdHIod29ya2xldCkpCisgICAgLCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3JrbGV0VGhy
ZWFkOjpjcmVhdGUoeyB3b3JrbGV0LmRvY3VtZW50KCktPnVybCgpIH0pKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dvcmtsZXRUaHJlYWQtPnN0YXJ0KCk7Cit9CisK
K0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7CisgICAgbV93b3JrbGV0VGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1vZGUpOworICAgIHJldHVybiB0
cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhN2FkZjRmMjgzODAz
YWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldDsKK2NsYXNzIEF1ZGlvV29ya2xldFRo
cmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgOiBwdWJsaWMgV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSh3b3Jr
bGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCk7CisKKyAg
ICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRoZSBtYWluIHRocmVhZCB0byBwb3N0IHRhc2sg
YmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0
cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBXZWFr
UHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0OworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+
IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGUuaWRsCmluZGV4IDU2MjcxNDg2NjNmMDQyMThiMWU1NTA1MTc1YjA0OTVhNTQ2
OTEyMDYuLjM0MGI4Y2FiMWQyNDM0MGY5YTY2N2I0ZWE3NTJiYjVjN2YyYzMzMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlk
bApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAg
IEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVk
aW9Xb3JrbGV0LAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
LAogICAgIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKaW5kZXggYTllMTliNjk1
ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5ZjExZjkwNS4uODcxYWVlMDAwZjhkNTBlYzRjMzA0NTcx
OTdmNWIyYjQyZjA0ZDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKQEAgLTI4LDcgKzI4LDcg
QEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5n
PUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwKIF0gZGlj
dGlvbmFyeSBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAg
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHMgPSAxOwogICAgIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTc3ZjM5OTQ0ZjJiZWNi
NzY4Yzg5NTZjYWY1ZWVhMmFkODhhMGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9X
b3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgor
CisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRl
cnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJz
IHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVkQ29weSgpCisgICAgfTsKK30KKworQXVkaW9X
b3JrbGV0VGhyZWFkOjpBdWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCisgICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycy5pc29sYXRlZENvcHko
KSkKK3sKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0KCkKK3sKKyAgICBhdXRv
IGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
ayk7CisKKyAgICBSZWY8VGhyZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTog
QXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsKKyAgICAgICAgd29ya2xldFRocmVhZCgpOworICAgIH0s
IFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICAvLyBGb3JjZSB0aGUgVGhyZWFkIG9iamVjdCB0byBi
ZSBpbml0aWFsaXplZCBmdWxseSBiZWZvcmUgc3RvcmluZyBpdCB0byBtX3RocmVhZCAoYW5kIGJl
Y29taW5nIHZpc2libGUgdG8gb3RoZXIgdGhyZWFkcykuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVu
Y2UoKTsKKyAgICBtX3RocmVhZCA9IFdURk1vdmUodGhyZWFkKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJlYWQoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpOworCisjaWYgVVNFKEdMSUIpCisgICAgR1JlZlB0cjxHTWFpbkNvbnRl
eHQ+IG1haW5Db250ZXh0ID0gYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBn
X21haW5fY29udGV4dF9wdXNoX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXI7Cisg
ICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29y
a2xldEdsb2JhbFNjb3BlTG9jayk7CisgICAgICAgIG1fd29ya2xldEdsb2JhbFNjb3BlID0gQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZSgqdGhpcywgbV9wYXJhbWV0ZXJzKTsKKworICAg
ICAgICBzY3JpcHRDb250cm9sbGVyID0gbV93b3JrbGV0R2xvYmFsU2NvcGUtPnNjcmlwdCgpOwor
CisgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CisgICAgICAgICAgICAvLyBU
aGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0
byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCisgICAgICAgICAgICAv
LyBmb3JiaWRFeGVjdXRpb24oKSBjb3VsZG4ndCBiZSBjYWxsZWQgZnJvbSBzdG9wKCkuCisgICAg
ICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5zY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7
CisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJ1bkV2ZW50TG9vcCgpOworCisjaWYgVVNFKEdMSUIpCisgICAg
Z19tYWluX2NvbnRleHRfcG9wX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgUmVmUHRyPFRocmVhZD4gcHJvdGVjdG9yID0gbV90aHJlYWQ7CisKKyAgICBB
U1NFUlQobV93b3JrbGV0R2xvYmFsU2NvcGUtPmhhc09uZVJlZigpKTsKKworICAgIFJlZlB0cjxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGU7CisgICAg
eworICAgICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhh
dCB3ZSBkb24ndCBjaGFuZ2UgbV93b3JrZXJHbG9iYWxTY29wZQorICAgICAgICAvLyB3aGlsZSBX
b3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNjZXNzaW5nIGl0LgorICAgICAgICBhdXRvIGxvY2sgPSBo
b2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAg
ICAgICAgLy8gRGVsYXkgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBXb3JrZXJHbG9iYWxTY29wZSBj
b250ZXh0IHVudGlsIGFmdGVyIHdlJ3ZlIHVubG9ja2VkIHRoZQorICAgICAgICAvLyBtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2VyR2xvYmFsU2NvcGVNdXRleC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVz
ZSBkZXN0cnVjdGluZyB0aGUKKyAgICAgICAgLy8gY29udGV4dCB3aWxsIHRyaWdnZXIgdGhlIG1h
aW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5zdCB1cyB0byBkZWxldGUgdGhlIFdvcmtlclRocmVhZAor
ICAgICAgICAvLyBvYmplY3QsIGFuZCB0aGUgV29ya2VyVGhyZWFkIG9iamVjdCBvd25zIHRoZSBt
dXRleCB3ZSBuZWVkIHRvIHVubG9jayBhZnRlciB0aGlzLgorICAgICAgICB3b3JrbGV0R2xvYmFs
U2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUobV93b3JrbGV0R2xvYmFsU2NvcGUpOworICAgIH0KKwor
ICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0aGUgY29udGV4dCwgd2hp
Y2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCisgICAgLy8gV2UgY2Fubm90
IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3Ro
ZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95IHRoZW0uCisgICAgd29y
a2xldEdsb2JhbFNjb3BlVG9EZWxldGUgPSBudWxscHRyOworCisgICAgLy8gU2VuZCB0aGUgbGFz
dCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJlIERlcmVmJ2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KV0geyB9KTsKKworICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJlYWR5IGRlc3Ry
b3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBhY2Nlc3MgInRoaXMiLgor
ICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpy
dW5FdmVudExvb3AoKQoreworICAgIC8vIERvZXMgbm90IHJldHVybiB1bnRpbCB0ZXJtaW5hdGVk
LgorICAgIG1fcnVuTG9vcC5ydW4obV93b3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFk
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWUyNzAyYzk4ZmRmODNmOTc1Mjk0NGE0NTBjOTM0YWM4NTM3OTQ2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CisKK3N0cnVjdCBXb3JrbGV0UGFyYW1l
dGVycyB7CitwdWJsaWM6CisgICAgVVJMIHdpbmRvd1VSTDsKKworICAgIFdvcmtsZXRQYXJhbWV0
ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFk
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRocmVhZD4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVhdGUoY29uc3QgV29y
a2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAgIH0KKworICAgIHZv
aWQgc3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1
bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIHZv
aWQgd29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAg
V29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRlcnMgbV9wYXJhbWV0
ZXJzOworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFs
U2NvcGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
azsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUzMDMwN2QyMTA5NDRm
M2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwogICAgICwgbV9sb2dn
ZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRl
bnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUo
KSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAg
LCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7CiAgICAgLy8gQWNj
b3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZp
Z2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscwogICAgICwg
bV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVl
TG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0Ojpj
cmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkp
CiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuaWRsCmluZGV4IGRmOTM1YTQwOGY0Y2IwNDNhN2Q4OTdkYjYzNzNiNDE0
NzdkOGQ3NDguLjZjNTVlNmRlMWRiYjQ4YjhkMDUyYjAzMzdjYjA5MTRkOTYwNTA5YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbApAQCAtNDIsNyArNDIsNyBAQAogICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRv
IHRoaXMgbGlzdGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlz
dGVuZXI7CiAKLSAgICBbU2FtZU9iamVjdCwgU2VjdXJlQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGlu
Zz1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3Jr
bGV0OworICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7
CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0U3RhdGUgc3RhdGU7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCmluZGV4IDc1MWRlOTE4Y2UxZGMzNmExYzc5ZTk1MDNjOTI4ZjRmODlmMDk2YmMu
LmFlMzRmZmJhMjNjZGExNmNkOWFhNzQ2MGU3YTg3MmU3OTgyMTNlOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDEwICszMCwxMyBAQAogCiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlv
V29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtOTksMTggKzEwMiwzMCBA
QCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkKQogICAgICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9u
LgogICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICAgICAgY3JlYXRl
RGVzdGluYXRpb24oKTsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAg
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rp
b24oKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKK0Z1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9p
ZCgpPiYmKT4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkRnVuY3Rpb24oKQoreworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCku
YXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICByZXR1cm4gW3dvcmtsZXRQcm94eSA9
IG1ha2VSZWYoKndvcmtsZXRQcm94eSldKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgewor
ICAgICAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxT
Y29wZShbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAg
cmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7
CiAgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICBt
X2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE4LDcgKzEzMyw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjpyZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsK
ICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQot
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgY29udGV4dCgpLnBv
c3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApAQCAtMTYzLDcgKzE3OCw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGNoYW5uZWxDCiAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAg
ICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigp
OwotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9u
LT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGVkZTE1MzNjMTY0ODI5
Y2YxZTIzYmE5M2MyOWE4ODYzNDIwM2U0ZDIuLjdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQy
MDA1YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDcsNiArNDcsOCBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNl
QXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0
aW9uKCk7CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpOworCiAgICAgdm9pZCBpbml0aWFsaXplKCkgZmluYWw7
CiAgICAgdm9pZCB1bmluaXRpYWxpemUoKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZpbmFsOwpAQCAtNjEsNyArNjMsNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNQbGF5aW5nKCkgZmluYWw7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlv
bj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5h
dGlvbjsKICAgICBTdHJpbmcgbV9pbnB1dERldmljZUlkOwogICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZJbnB1dENoYW5uZWxzIHsgMCB9OwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmYWEzMzY1MmVkYjM3NjNiMzljMWY2YmI0
N2Y2YmIyNGZhMDNjNDIwLi41M2I1NTQxM2U5MjYxYjc3MGVmN2FjM2JhYWQ2ZDg2ZTBjODI5ZWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0zMSw3ICszMSwxMCBAQAogI2lu
Y2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAi
QXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtOTYsOSArOTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0
cnVlOwogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwogCi0gICAgLy8g
RklYTUU6IFNob3VsZCB3ZSBjYWxsIGxhenlJbml0aWFsaXplIGhlcmU/Ci0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2UgY3JlYXRl
IGZvciBvZmZsaW5lIGF1ZGlvLgotICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUo
Im9mZmxpbmUgcmVuZGVyZXIiLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyldKCkgbXV0YWJsZSB7CisgICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gb2ZmbGluZVJlbmRlcigpOwogICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCByZXN1bHQsIGN1cnJlbnRTYW1wbGVGcmFtZSA9IG1fY3VycmVudFNhbXBs
ZUZyYW1lLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewogICAgICAg
ICAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gZmFsc2U7CkBAIC0xMTQsNyArMTE1LDE3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsK
LSAgICB9LCBUaHJlYWRUeXBlOjpBdWRpbyk7CisgICAgfTsKKworICAgIGlmIChhdXRvKiB3b3Jr
bGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICB3
b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtvZmZUaHJl
YWRSZW5kZXJpbmcgPSBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG9mZlRocmVhZFJlbmRlcmluZygpOwor
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRo
ZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCisgICAgbV9y
ZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFdURk1vdmUo
b2ZmVGhyZWFkUmVuZGVyaW5nKSwgVGhyZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggOTVjYzEwODU1ZDhiYWZlZDdhNDUzYzRiZTlmNGQ5MmRl
MjQ1MzdiYi4uYzdlY2ZkZDE1NWM1MjgwZDU4NTRiZmI1MmJlYmVhMDI4NGFkYjdhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTIwNSw3ICsyMDUsMTAgQEAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCitNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAogTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcApAQCAtMjU3OSw2ICsyNTgyLDcgQEAgd29y
a2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0LmNwcAog
d29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcAogd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAog
eG1sL0RPTVBhcnNlci5jcHAKQEAgLTI2ODAsNiArMjY4NCw3IEBAIEpTQXVkaW9UaW1lc3RhbXAu
Y3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1dvcmts
ZXQuY3BwCitKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogSlNBdWRpb1dvcmtsZXROb2Rl
LmNwcAogSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAKIEpTQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTJkYjNjMjEwY2VhY2U1Mjk5MTg2OGVjYjBj
YjczNjM1Y2ZlZDAuLmIwYzI5NzBmNWFjZGY5ZTIzMzBlYmY4ZDdhOTQwMTJkNWU2MDMzODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI0NTEsNiArMjQ1MSwxMCBAQAogCQk4MzNCOUUzMjFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNDFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJBMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oICov
OyB9OwogCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUy
QzFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggKi87IH07CisJCTgz
M0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCRDgxMzI1MjRENEUyMDA2
RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovOyB9OworCQk4MzNCRDgxODI1MjRENEY1
MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovOyB9OworCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5oICovOyB9OworCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5oICovOyB9OwogCQk4MzNEMUM3NjI0RDhENTRGMDBFODEzREYgLyog
V2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmggKi87IH07CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNo
YW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTgzNDNEOTg0MjREMERFRTkwMDlBQkQ0OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0M0Q5ODEy
NEQwREVBOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmggKi87IH07CkBAIC0yNTA4
LDYgKzI1MTIsNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVu
dHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5o
ICovOyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUw
QjYzODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZG
QTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmls
ZVN5c3RlbS5oICovOyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8q
IFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlB
QUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAv
KiBIVE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyog
SUlSRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNTM1
LDYgKzI1NDAsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJn
ZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZP
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFG
NTI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IH07CisJCTgzRDZBQUU2MjUy
NEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjRE
QTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMu
aCAqLzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlB
MDFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI1NDQs
NiArMjU1MCw3IEBACiAJCTgzRkIzMzcxMUY1MDhBNTQwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aCAqLzsgfTsKIAkJODNGQjMzNzMxRjUwOEE1ODAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkYx
RjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3NTFG
NTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkMxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRo
cmVhZC5oICovOyB9OwogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0
MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBF
dmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkw
MjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5
IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwpAQCAtMTA1NzgsNiArMTA1ODUsMTMgQEAK
IAkJODMzQjlFMkQxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1GaWxlRW50
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRTFGNTA4RDgwMDBF
MEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5
RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTMyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNr
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrbGV0UGVuZGlu
Z1Rhc2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQTI1
MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMz
Q0Y3MEYyMERCM0Y1RjAwMTQxQkNDIC8qIEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlT2JzZXJ2
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3MzI0RDhE
NTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNEMUM3NTI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MTgsNyBAQAogCQk4Mzk5NDcwOTFG
NTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIg
LyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1
MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5
MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRN
TFdCUkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TFdCUkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiAr
MTA3NjcsNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVz
dEV2ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0
cFJlcXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1
MTFGMzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QmlxdWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5
RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJpcXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlF
MEQyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVh
ZEZpbHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEs
NiArMTA4MDcsOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURp
cmVjdG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2
RTFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAv
KiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAx
Nzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xl
dFRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
ZGlvV29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3
Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJ
bml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2MSw4IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0
ZXh0ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUw
RjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4
ICsxNzU3NSw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUu
aCAqLywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAg
Ki8sCiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywK
LQkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3Bw
ICovLAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtl
ci5oICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRl
ci5jcHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWls
ZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9t
ZXRyeS5oICovLApAQCAtMTg3MjAsNiArMTg3MzksOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0Yw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQy
NTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJ
ODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5n
UHJveHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9v
cC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3Au
aCAqLywKQEAgLTE5NzM4LDggKzE5NzU5LDExIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJE
RkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAw
NTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIw
MDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0
RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEw
MjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUy
MjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJCQkJODMzQkQ4MTUyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEz
MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEz
MjkyMTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJ
CQk0QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAq
LywKIAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODIsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBF
MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBB
OTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2
RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1
N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JE
ODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8s
CisJCQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuY3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlLmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuaWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlT3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dv
cmtsZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBC
MDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDggKzMwNDk4LDExIEBACiAJ
CQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAw
NkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmts
ZXROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUy
NTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAw
Qjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcy
LDYgKzMxODA2LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFS
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8q
IElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4
IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3
ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTUsNiBAQAog
CQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
Q29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5
MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEy
NTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ1OTUsNiArMzQ2MjksOCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlE
NiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdG
MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8q
IFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0NSw5
IEBACiAJCQkJNEJERUEzMjAyMTdFQzU1RjAwNTJERkNEIC8qIFdvcmtsZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRCN0Y5QzUyMjE4M0I1RTUwMDFDRUJBMCAvKiBXb3JrbGV0Q29uc29sZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEzMjUyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmts
ZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3
MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0FD
RDAxMzI1MjI5RTEwMDAwRDEyNEUgLyogV29ya2xldE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4
MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaAppbmRleCA2MmIwZDZkNTRhNGYwMDAyZGVlNGJkMmRmYzdlYzZlZDEzN2Q4NDY4
Li5iM2E4ZDViMTNjNDUxMWNmNzg0MjU3NTlkNjA1MTQ4MTExNDkwYzA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC01NSw2ICs1
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhBdWRpb0xpc3RlbmVyKSBcCiAg
ICAgbWFjcm8oQXVkaW9QYXJhbU1hcCkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldCkgXAorICAg
IG1hY3JvKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oQXVkaW9Xb3JrbGV0
Tm9kZSkgXAogICAgIG1hY3JvKEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSkgXAogICAg
IG1hY3JvKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDM4ZGY2
Nzc1MmU5MGE2YTJlMDE3NGNmYWZiYzRmODcxZWE4MWMxNGEuLmRhNDZlODVjMzQwM2EyZTgwNzYz
ODIzODI1ZGI4NzQxOWQ3ODFkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJET01HQ091dHB1dENvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIK
KyNpbmNsdWRlICJKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01CdWlsdGluQ29uc3RydWN0b3JCYXNlLmgiCiAjaW5j
bHVkZSAiSlNET01XaW5kb3cuaCIKQEAgLTY4LDkgKzY5LDEyIEBAIEpTVk1DbGllbnREYXRhOjpK
U1ZNQ2xpZW50RGF0YShWTSYgdm0pCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwg
bV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBD
ZWxsVHlwZTo6Y3JlYXRlPEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigpKQogI2VuZGlmCisg
ICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENl
bGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKENTU19Q
QUlOVElOR19BUEkpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlPigpKQotICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6
Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTV29ya2xldEdsb2JhbFNjb3BlPigpKQorI2VuZGlm
CisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlPigpKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9i
amVjdChKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTSURCU2VyaWFsaXphdGlvbkdsb2Jh
bE9iamVjdD4oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0Ns
aWVudERhdGEuaAppbmRleCA4M2I4MjM0YzMzNWRlZDE0NTBkMTgxM2ZlODQyOTdhOTc1ODM4OTUx
Li5iODQ0MGU4NzcwZTQ3MjkxZjdlZTIwNjMxOTllYTA1YzNjNGJiMGMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC05OSw5ICs5
OSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZTsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxs
VHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKICNpZiBFTkFCTEUo
Q1NTX1BBSU5USU5HX0FQSSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+
IG1faGVhcENlbGxUeXBlRm9ySlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTsKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xv
YmFsU2NvcGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2Vy
aWFsaXphdGlvbkdsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBkMGE1NDdhYzU2NzM5ZmRkZTFlNzBl
OGVjMTliMmI0ODg1ZWI1NjA5Li5lMzkwMTgwZjU3MWY5ZTFlMzViYzkyM2IxZDc3MWQ0Yjk1Y2Vk
YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGlt
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ0LDcgKzQ1LDcg
QEAgY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBj
bGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIAotY2xhc3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciB7
CitjbGFzcyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlwdENv
bnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlKik7CkBAIC02Nyw3ICs2OCw3IEBAIHB1
YmxpYzoKICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKS9pc0V4ZWN1dGlvbkZvcmJpZGRlbigpIHRv
IGd1YXJkIGFnYWluc3QgcmVlbnRyeSBpbnRvIEpTLgogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJv
bSBhbnkgdGhyZWFkLgogICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOwot
ICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNUZXJt
aW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gQ2FsbGVkIG9uIFdvcmtl
ciB0aHJlYWQgd2hlbiBKUyBleGl0cyB3aXRoIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiBjYXVzZWQg
YnkgZm9yYmlkRXhlY3V0aW9uKCkgcmVxdWVzdCwKICAgICAvLyBvciBieSBXb3JrZXIgdGhyZWFk
IHRlcm1pbmF0aW9uIGNvZGUgdG8gcHJldmVudCBmdXR1cmUgZW50cnkgaW50byBKUy4KQEAgLTc5
LDExICs4MCwxMSBAQCBwdWJsaWM6CiAKICAgICBKU0M6OlZNJiB2bSgpIHsgcmV0dXJuICptX3Zt
OyB9CiAgICAgCi0gICAgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpOwotICAgIHZvaWQgYWNxdWly
ZUhlYXBBY2Nlc3MoKTsKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAg
dm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRUaW1lclNldE5v
dGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNr
KTsKLSAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGlt
ZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgIHZvaWQgYWRkVGltZXJTZXROb3Rp
ZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykg
ZmluYWw7CisgICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9v
cFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0
YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwogICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoSlND
OjpEZWJ1Z2dlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxMGYzZTY2ODY2NTQ1YTVhNjBhOWVlNWE5Zjg2NzRhZTNj
Mjg0OTMyLi41OGZkMWE3YTI2ZmRkMWRhYzRkYjJiNzBiMWM1NDUzNzViY2Q0ZjlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtNzc1LDcgKzc3NSw3IEBAIHN1YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKIAog
ICAgICMgRm9yIHdvcmtlcnMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAi
V29ya2VyR2xvYmFsU2NvcGUiOwotICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVj
dCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3BlLgorICAgICMgRm9yIHdvcmtsZXRzLCB0aGUg
Z2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3BlIG9yIGEgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBl
cSAiV29ya2xldEdsb2JhbFNjb3BlIjsKIAogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgk
aW50ZXJmYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVw
cm9jZXNzLWlkbHMucGwKaW5kZXggYmVlMGZjNTA2OTE5ZmNjZmQxNzVmNjljYzUyM2M1NzU2YmMw
OGE4OC4uZjRjODRiYzg4YzQxMTQ1ZGQxNmVkMzgzZDRkMzljNDJjYzVkNjk0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAg
LTQ3LDYgKzQ3LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZTsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkg
JHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOworbXkgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZTsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkg
JHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwczsKIG15ICRpZGxBdHRyaWJ1dGVzRmlsZTsKQEAgLTY5
LDYgKzcwLDcgQEAgR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAg
ICAgICdzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAncGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlPXMnID0+IFwkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlLAorICAgICAgICAgICAnYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
PXMnID0+IFwkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAg
ICAgICAndGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHRlc3RHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURl
cHM9cycgPT4gXCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMsCiAgICAgICAgICAgICdpZGxBdHRy
aWJ1dGVzRmlsZT1zJyA9PiBcJGlkbEF0dHJpYnV0ZXNGaWxlLApAQCAtODMsNiArODUsNyBAQCBk
aWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRgogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUg
dXNpbmcgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVz
cyBkZWZpbmVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRp
ZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAt
LXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5l
ZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBz
cGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcg
LS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR0ZXN0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSB8fCAhZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRl
eHROYW1lKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IHRoZSBmaWxlIGxpc3RpbmcgYWxsIElETHMgdXNp
bmcgLS1pZGxGaWxlTmFtZXNMaXN0LicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlTmFtZXNMaXN0
KTsKIGRpZSgnTXVzdCBzcGVjaWZ5IElETCBhdHRyaWJ1dGVzIGZpbGUgdXNpbmcgLS1pZGxBdHRy
aWJ1dGVzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkaWRsQXR0cmlidXRlc0ZpbGUpOwpAQCAtOTUs
NiArOTgsNyBAQCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0g
Q3lnd2luUGF0aElmTmVlZGVkKCRkZWRpY2F0ZWRXb3JrZQogJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5
Z3dpblBhdGhJZk5lZWRlZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
KTsKKyRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkc3Vw
cGxlbWVudGFsTWFrZWZpbGVEZXBzID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBwbGVtZW50YWxN
YWtlZmlsZURlcHMpIGlmIGRlZmluZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyk7CiAKIG15
IEBpZGxGaWxlTmFtZXM7CkBAIC0xMzUsNiArMTM5LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNDb2RlID0gIiI7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlID0gIiI7CitteSAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0g
IiI7CiBteSAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogCiBteSAkaXNv
U3Vic3BhY2VzSGVhZGVyQ29kZSA9IDw8RU5EOwpAQCAtMjM3LDYgKzI0Miw4IEBAIGZvcmVhY2gg
bXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAg
ICAgICAgICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVD
b2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlBhaW50V29ya2xl
dCIpIHsKICAgICAgICAgICAgICAgICAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENv
bnRleHQgZXEgIkF1ZGlvV29ya2xldCIpIHsKKyAgICAgICAgICAgICAgICAkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAg
ICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSkgewog
ICAgICAgICAgICAgICAgICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRy
aWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI1NCw2ICsyNjEsNyBAQCBHZW5l
cmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjbwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUiLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSwgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQ
YXJ0aWFsSW50ZXJmYWNlKCJXb3JrbGV0R2xvYmFsU2NvcGUiLCAkd29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSwgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwog
R2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIsICRwYWlu
dFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRwYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOworR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZSIsICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Nv
ZGUsICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQ
YXJ0aWFsSW50ZXJmYWNlKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVm
aW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKIAogaWYgKCRpc29TdWJzcGFjZXNIZWFkZXJG
aWxlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMGRhZTExMDdkMzM0YmM4ZjQzZGYyZjRmN2U4NGE5ODNjMzVkNjZm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDIgQEAK
K3BhcnRpYWwgaW50ZXJmYWNlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAK
Ky8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0
aGF0IEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1
aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEy
N2IwYTU1OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmgKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBp
cyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kCisgICAgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVkIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJv
bSB0cnlpbmcgdG8gcmVnZW5lcmF0ZSBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmggYW5kIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2
ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWlu
dFdvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAK
aW5kZXggMTM2ZTRmMTRlY2ZlNWU0YjlmOWM5NTIwMjc0MzlhNGEzMWQ0OTY0NS4uNmEwZTE5NjY0
NTQyZTgxNjgxYzdhNjk3ZWNjNzExNWI3YTRkZmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01DU1NO
YW1lc3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhaW50V29ya2xl
dEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTYsMTEgKzU3LDE4IEBAIGNvbnN0IGNoYXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVu
dE5hbWUoKQogICAgIHJldHVybiAiRE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWlu
dFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9k
dWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQorLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUg
c3RhbmRhcmQtY29tcGxpYW50IFdvcmtsZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBh
aW50V29ya2xldDo6YWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0
aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8q
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBm
cmFtZSBpcyBkZXRhY2hlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgZG93bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0
byBtYXliZUNvbnRleHQgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3Vt
ZW50LCBTY3JpcHRTb3VyY2VDb2RlKG1vZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0
ID0gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNv
dXJjZUNvZGUobW9kdWxlVVJMKSk7CiAgICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7
CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7
CiAgICAgICAgIHJldHVybjsKQEAgLTcwLDkgKzc4LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0Ojph
ZGRNb2R1bGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29y
a2xlCiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlv
bkxvY2soKSk7CiAgICAgZm9yIChhdXRvJiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9u
TWFwKCkua2V5cygpKQotICAgICAgICBkb2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29w
ZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50
LT5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0
LmdldCgpKSk7CiAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xl
dEdsb2JhbFNjb3BlUHJveHk+PiBQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7
CisgICAgLy8gRklYTUU6IEFkZCBpbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQor
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdv
cmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBi
OWIxMzg1YmIwOGEzZjFjZWQ0ZWIyYjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4
NWJhMWE2MmQ3YmIyMDQ4MjIzZjJjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTUGFpbnRXb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50
V29ya2xldC5oCkBAIC00MSwxNSArNDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBj
bGFzcyBQYWludFdvcmtsZXQgZmluYWwgOiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdv
cmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQYWludFdvcmtsZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9w
dFJlZigqbmV3IFBhaW50V29ya2xldChkb2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNw
ZW5kSWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9p
ZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9w
dGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmts
ZXQuCisgICAgdm9pZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRP
cHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8
UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7
CiAKIHByaXZhdGU6Ci0gICAgUGFpbnRXb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0
IFBhaW50V29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1
bWVudCkKKyAgICB7IH0KIH07CiAKIGNsYXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1
YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMmFjZjNmMThjYWRjNjg2YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBm
OGUyYjFhNzQ5ZDMzZmIzMmMxN2QwZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC04NDM5LDcgKzg0MzksNyBAQCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXImIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3Jr
bGV0JiBEb2N1bWVudDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRX
b3JrbGV0KQotICAgICAgICBtX3BhaW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7
CisgICAgICAgIG1fcGFpbnRXb3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwog
ICAgIHJldHVybiAqbV9wYWludFdvcmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMDZhM2VjOTA2NTU4MjZmYmNkOTFhODNiNjQx
ZTI3ZjU5ZTc1ZGU2MC4uYWViNTgzY2E0YjJhZTIxMzMwYWUzNDk4Mzk1YmI2NTgzMGUwNDk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEy
Nyw2ICsxMjcsMTEgQEAgcHVibGljOgogICAgIGJvb2wgY3NzUGFpbnRpbmdBUElFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9DU1NQYWludGluZ0FQSUVuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyAgICB2b2lkIHNldEF1ZGlvV29ya2xldEVuYWJsZWQoYm9vbCBp
c0VuYWJsZWQpIHsgbV9hdWRpb1dvcmtsZXRFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9v
bCBhdWRpb1dvcmtsZXRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1dvcmtsZXRFbmFi
bGVkOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgdm9pZCBzZXRD
U1NUeXBlZE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX0NTU1R5cGVkT01FbmFibGVkID0g
aXNFbmFibGVkOyB9CiAgICAgYm9vbCBjc3NUeXBlZE9NRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fQ1NTVHlwZWRPTUVuYWJsZWQ7IH0KQEAgLTMwMiw2ICszMDcsOSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGJvb2wgbV9DU1NQYWludGluZ0FQSUVuYWJs
ZWQgeyBmYWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBib29sIG1f
YXVkaW9Xb3JrbGV0RW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1Nf
VFlQRURfT00pCiAgICAgYm9vbCBtX0NTU1R5cGVkT01FbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA3OTBkYjRiN2U5NmZhOTZkZjg4ZmQ2NzhjYWUwYzcy
ZTUyM2E4MTk5Li43Y2Q1ZGYxMGZmZDEwZmY3M2Q0OTNiZTFjMDlhODE5ZDI0NTI2NDA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC0yNTksOCArMjU5LDYgQEAgcHJlZml4ZWRXZWJB
dWRpb0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiBtb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9F
bmFibGVkOgogICBpbml0aWFsOiBmYWxzZQotYXVkaW9Xb3JrbGV0RW5hYmxlZDoKLSAgaW5pdGlh
bDogZmFsc2UKIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UK
IGZ1bGxTY3JlZW5FbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5o
CmluZGV4IDQzZDU3NjUyOThjMDY3OTJjNmRkY2U4NWM0MmEwYTNmNTc1YTg3ODMuLjk4NTIwNWRh
YmFhYjhkYTM4NmY2NTY0ZDgwOTZmZDI4NjU1YzFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVN0cmF0ZWd5LmgKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IE5vd1BsYXlpbmdJbmZv
OwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CiAjaWYgRU5B
QkxFKFdFQl9BVURJTykKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAorICAgIHZpcnR1YWwgUmVmPEF1ZGlvRGVzdGlu
YXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCiAgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYs
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSA9
IDA7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCBkZWI3NTdkYzQ1ZTU3ODU4NTIx
N2ZkM2JlYzA3MTJiNjQ0ZDc1Mzc0Li4xNjBjNjU3OGUxNWVkNWVhNzUyNWRjNzY4YmQ0ZWYzZmRj
NzRmNGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rl
c3RpbmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25faAog
CiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00MCwxNiArNDEsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogLy8gVGhlIGF1ZGlv
IGhhcmR3YXJlIHBlcmlvZGljYWxseSBjYWxscyB0aGUgQXVkaW9JT0NhbGxiYWNrIHJlbmRlcigp
IG1ldGhvZCBhc2tpbmcgaXQgdG8gcmVuZGVyL291dHB1dCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1
bSBvZiBhdWRpby4KIC8vIEl0IG9wdGlvbmFsbHkgd2lsbCBwYXNzIGluIGxvY2FsL2xpdmUgYXVk
aW8gaW5wdXQgd2hlbiBpdCBjYWxscyByZW5kZXIoKS4KIAotY2xhc3MgQXVkaW9EZXN0aW5hdGlv
biB7CitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PEF1ZGlvRGVzdGluYXRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICAvLyBQYXNzIGluIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBpZiBsaXZlL2xv
Y2FsIGF1ZGlvIGlucHV0IGlzIGRlc2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZpYyBkZXZpY2Ug
aWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcyBj
YW4gYmUgcGFzc2VkIGluIHRoZSBpbnB1dERldmljZUlkLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxs
YmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uKCkg
PSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hU
b1JlbmRlclRocmVhZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc1BsYXlpbmcoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmlu
ZGV4IDc0YWQ2MTZmYTllMjVkZWI5OTljOTZiNjY3ZWQxNDk0NzBiZjY4NzIuLmRhNGU0YjJjOGI2
MDczNDgzZjlmYWRjNjdiYWZiZmZmODY4NWY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNw
cApAQCAtNDEsNyArNDEsNyBAQCBjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25D
b2NvYU92ZXJyaWRlIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxs
cHRyOwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0
aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1
dERldmljZUlkIGFzIGFwcHJvcHJpYXRlLgogCkBAIC01NSw3ICs1NSw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsCiAgICAgaWYgKEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJp
ZGUpCiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRl
KGNhbGxiYWNrLCBzYW1wbGVSYXRlKTsKIAotICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlVW5p
cXVlPEF1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIHNhbXBsZVJhdGUpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdFJlZigqbmV3IEF1
ZGlvRGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2Ft
cGxlUmF0ZSkpOwogICAgIGRlc3RpbmF0aW9uLT5jb25maWd1cmUoKTsKICAgICByZXR1cm4gZGVz
dGluYXRpb247CiB9CkBAIC0xMDMsOSArMTAzLDEwIEBAIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6ZnJhbWVzUGVyQnVmZmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJCdXMt
Pmxlbmd0aCgpOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9p
ZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9p
ZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogewogICAgIExPRyhNZWRpYSwgIkF1
ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQiKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJl
YWQgPSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIE9TU3RhdHVzIHJlc3Vs
dCA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAKICAgICBpZiAoIXJlc3Vs
dCkKQEAgLTExNiw2ICsxMTcsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgp
CiB7CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wIik7CiAgICAg
T1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAg
IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiAKICAgICBpZiAoIXJlc3VsdCkK
ICAgICAgICAgc2V0SXNQbGF5aW5nKGZhbHNlKTsKQEAgLTEyMyw2ICsxMjUsNyBAQCB2b2lkIEF1
ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29h
OjpzZXRJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2lzUGxheWluZ0xvY2spOwogICAgIGlmIChtX2lzUGxheWluZyA9PSBpc1BsYXlpbmcp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMTczLDE4ICsxNzYsMzggQEAgT1NTdGF0dXMgQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwg
VUludDMyIG4KIAogICAgIC8vIEFzc29jaWF0ZSB0aGUgZGVzdGluYXRpb24gZGF0YSBhcnJheSB3
aXRoIHRoZSBvdXRwdXQgYnVzIHRoZW4gZmlsbCB0aGUgRklGTy4KICAgICBhc3NpZ25BdWRpb0J1
ZmZlcnNUb0J1cyhidWZmZXJzLCBtX291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBu
dW1iZXJPZkZyYW1lcywgMCwgbnVtYmVyT2ZGcmFtZXMpOwotICAgIHNpemVfdCBmcmFtZXNUb1Jl
bmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOwor
ICAgIHNpemVfdCBmcmFtZXNUb1JlbmRlcjsKIAorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2ZpZm9Mb2NrKTsKKyAgICAgICAgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8t
PnB1bGwobV9vdXRwdXRCdXMucHRyKCksIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICAv
LyBXaGVuIHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1
ZGlvV29ya2xldFRocmVhZC4KKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7Cisg
ICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBmcmFtZXNUb1JlbmRlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2lzUGxheWluZ0xvY2ssIHN0ZDo6dHJ5X3RvX2xv
Y2spOworICAgICAgICAgICAgaWYgKGxvY2sub3duc19sb2NrKCkgJiYgbV9pc1BsYXlpbmcpCisg
ICAgICAgICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7Cisg
ICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZy
YW1lc1RvUmVuZGVyKTsKKworICAgIHJldHVybiBub0VycjsKK30KKworLy8gVGhpcyBydW5zIG9u
IHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwgb24g
dGhlIGF1ZGlvIGRldmljZSdzIHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgordm9pZCBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1Rv
UmVuZGVyKQorewogICAgIGZvciAoc2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1l
cyA8IGZyYW1lc1RvUmVuZGVyOyBwdXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKSB7CiAgICAgICAgIGlmIChtX3Jlc2FtcGxlcikKICAgICAgICAgICAgIG1f
cmVzYW1wbGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NhbGxi
YWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAKKyAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2ZpZm9Mb2NrKTsKICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0
cigpKTsKICAgICB9Ci0KLSAgICByZXR1cm4gbm9FcnI7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRV
bml0IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IDAwZGRhMmZiMmEzN2I4M2Yx
MGVmYTUyNzFiMTc2OGE4MGI0ODExZWMuLjA4OTRkNjIxYTJmMTUzMjI1MTI3MzY1MGI2ZTVhM2Qz
ZWM5OTZmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNz
IEF1ZGlvQnVzOwogY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOwogY2xhc3MgUHVzaFB1bGxG
SUZPOwogCi11c2luZyBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9IHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBz
YW1wbGVSYXRlKTsKK3VzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0g
UmVmPEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJh
dGUpOwogCiAvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRlZmF1bHQg
b3V0cHV0IEF1ZGlvVW5pdAogY2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNvY29hIDogcHVibGljIEF1
ZGlvRGVzdGluYXRpb24sIHB1YmxpYyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKQEAgLTY1LDExICs2
NSwxNSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHNldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworCiBwcml2YXRl
OgotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CiAKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1
ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1
bnNpZ25lZCwgdW5zaWduZWQsIGZsb2F0KTsKKyAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhl
YWQoc2l6ZV90IGZyYW1lc1RvUmVuZGVyKTsKKworICAgIGZyaWVuZCBSZWY8QXVkaW9EZXN0aW5h
dGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOwogICAgIAogICAgIC8vIEF1ZGlvU291
cmNlUHJvdmlkZXIuCiAgICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKSBmaW5hbDsKQEAgLTkxLDExICs5NSwxNCBAQCBwcml2YXRlOgogICAgIC8v
IFJlc29sdmVzIHRoZSBidWZmZXIgc2l6ZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBXZWJBdWRpbyBl
bmdpbmUgYW5kCiAgICAgLy8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZyb20gdGhlIGFjdHVhbCBh
dWRpbyBkZXZpY2UuCiAgICAgVW5pcXVlUmVmPFB1c2hQdWxsRklGTz4gbV9maWZvOworICAgIExv
Y2sgbV9maWZvTG9jazsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aUNoYW5uZWxSZXNhbXBs
ZXI+IG1fcmVzYW1wbGVyOwogICAgIEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFRpbWVzdGFtcDsK
IAogICAgIGZsb2F0IG1fY29udGV4dFNhbXBsZVJhdGU7CisKKyAgICBMb2NrIG1faXNQbGF5aW5n
TG9jazsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCA4ZmRlYjZhMjQyNDg0OWNhYzE3YmJl
OTBhYWU3MTJhODlhMjRkMTAwLi5jMDVhZTZiZTYyOWRkYjNkZjY3MjI4MjkxMTFjZThiNjQwMGVl
NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC00OCw3
ICs0OCw3IEBAIHN0YXRpYyB2b2lkIGF1dG9BdWRpb1NpbmtDaGlsZEFkZGVkQ2FsbGJhY2soR3N0
Q2hpbGRQcm94eSosIEdPYmplY3QqIG9iamVjdCwgZ2NoCiAgICAgICAgIGdfb2JqZWN0X3NldChH
U1RfQVVESU9fQkFTRV9TSU5LKG9iamVjdCksICJidWZmZXItdGltZSIsIHN0YXRpY19jYXN0PGdp
bnQ2ND4oMTAwMDAwKSwgbnVsbHB0cik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVz
dGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxi
YWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8g
RklYTUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTYw
LDcgKzYwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAobnVtYmVyT2ZPdXRw
dXRDaGFubmVscyAhPSAyKQogICAgICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoJXUsICV1LCAlZikgLSB1bmhhbmRsZWQgb3V0cHV0IGNoYW5uZWxzIiwgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIAotICAg
IHJldHVybiBtYWtlVW5pcXVlPEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI+KGNhbGxiYWNrLCBz
YW1wbGVSYXRlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyKGNhbGxiYWNrLCBzYW1wbGVSYXRlKSk7CiB9CiAKIGZsb2F0IEF1ZGlvRGVzdGluYXRp
b246OmhhcmR3YXJlU2FtcGxlUmF0ZSgpCkBAIC0xNjUsNyArMTY1LDcgQEAgZ2Jvb2xlYW4gQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdl
KQogICAgIHJldHVybiBUUlVFOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6
OnN0YXJ0KCkKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoRnVuY3Rpb248
dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKQogewogICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2
YWlsYWJsZSk7CiAgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IGNmZTY4OTIwOGQwOTY4YTUxYThiYjFkMWU4N2Y2
ZTE5ZDBmMjMxNjYuLmQ1NTEwNGM4OGNjYmNkZmZmZjk3YzRlN2E0OTQ5ODZmOTk2YmY4ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtMzQsNyArMzQsNyBAQCBw
dWJsaWM6CiAgICAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smLCBm
bG9hdCBzYW1wbGVSYXRlKTsKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
KCk7CiAKLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlv
bjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUGxheWluZygp
IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRl
eCA5ZGFhN2QwMTQxZDgxMDRlNGY1YzRjMjY0OGJjOGM2YmU1MjZjMGM4Li41YTEyY2RlNGZjZGZj
NTdmYWQ0MmI3ZDllOGZlNzMyMDQzNTA5ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTQ1
LDggKzQ1LDkgQEAgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6TW9ja0F1ZGlvRGVzdGluYXRp
b25Db2NvYShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogCiBNb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjp+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpID0gZGVmYXVsdDsKIAotdm9pZCBN
b2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIE1vY2tBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNw
YXRjaFRvUmVuZGVyVGhyZWFkKQogeworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdU
Rk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAgbV90aW1lci5zdGFydFJlcGVhdGlu
ZyhTZWNvbmRzIHsgbV9udW1iZXJPZkZyYW1lc1RvUHJvY2VzcyAvIHNhbXBsZVJhdGUoKSB9KTsK
ICAgICBzZXRJc1BsYXlpbmcodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGQ0ZWFlODMz
NDM1YzBhNjA0NTVlZDBiOTY5MjU2OGM4ZWM2M2YzNmQuLmE4ZDI4YzRlZDFiYmVmZmQzMzA5NDUw
ZGFhZjMyOWViYTI1MzRjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC0zOCwxMiArMzgsMTYgQEAg
Y2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogY2xhc3MgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSBm
aW5hbCA6IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJh
dGUpIHsgcmV0dXJuIG1ha2VVbmlxdWU8TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJh
Y2ssIHNhbXBsZVJhdGUpOyB9CisgICAgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2Fs
bGJhY2ssIHNhbXBsZVJhdGUpKTsKKyAgICB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBNb2NrQXVk
aW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfk1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoKTsK
IAogcHJpdmF0ZToKLSAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdGFydChGdW5j
dGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgp
IGZpbmFsOwogCiAgICAgdm9pZCB0aWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGIyZjMzMTJjZjRiMDQ2MWI4N2ZhYWFjMzljZDQyYTA2
M2U1OGFjNzMuLjFmZTkzOTg3ZWY5NjFmZGZiZTM4ZjQ3Y2E2NzFhZjVmZGE5OGQ5ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01NDQsNCAr
NTQ0LDkgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2VyR2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5
KCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcnJlclBvbGljeTsKIH0KIAorVGhyZWFkKiBXb3Jr
ZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dGhyZWFkLnRocmVhZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYmQ5Y2YxNDBkZDUyZmI4NDk4
YjlmYTQxMDYwYzkzYWJmYTY4Mzg1ZS4uOTBkZjNiNmFmM2Q2M2VjNjFhZWM5YTEyM2MwODc3ZTc5
ZTM0YjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5j
bHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+
CiAjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldv
cmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCkBAIC01OSw3ICs2MCw3IEBAIG5hbWVz
cGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OwogfQogCi1jbGFzcyBX
b3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPiwg
cHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMg
QmFzZTY0VXRpbGl0aWVzIHsKK2NsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNv
dW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xv
YmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2
NFV0aWxpdGllcywgcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlckdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5Xb3JrZXJHbG9iYWxTY29wZSgpOwpAQCAtODUsMTMgKzg2LDE1IEBAIHB1YmxpYzoKICAg
ICBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24mIHN3Q2xpZW50Q29ubmVjdGlvbigpOwogI2VuZGlm
CiAKLSAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3Njcmlw
dC5nZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsg
cmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgdm9pZCBjbGVhclNjcmlwdCgpIHsgbV9zY3Jp
cHQgPSBudWxscHRyOyB9CiAKICAgICBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0
b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlcjsgfQog
CiAgICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZDsgfQog
CisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKICAgICB1c2lu
ZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHk7CiAKICAgICB2b2lk
IHBvc3RUYXNrKFRhc2smJikgZmluYWw7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQn
cyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCkBAIC0xMTksNyArMTIyLDcgQEAgcHVibGljOgogICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAot
ICAgIGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4gbV9jbG9zaW5nOyB9CisgICAgYm9vbCBpc0Ns
b3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nsb3Npbmc7IH0KIAogICAgIHZvaWQgYWRk
Q29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+
JiYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0OGUwODQ4YmUzNTIyYjZhZDljMzI4NTMz
OTc0NmM3YzM5NzQyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRocmVhZDsKK30K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwg
V1RGOjpUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBi
b29sIGlzQ2xvc2luZygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY5YmY4M2U5MzBkZDE2NWQ4YTMzMDQ3MDUy
YWQ1NWQyMmZhZmE3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcigpID0gZGVm
YXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQg
YWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaW1lclNldE5vdGlm
aWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9
IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0ID0g
MDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclJ1bkxvb3AuY3BwCmluZGV4IDY2ZWNkNTM2ZjgxM2QwMjljNDk3ZjFhZWE3ZjIxOWVkZmM3
NWIzNzUuLmJiNjFmYzVmMmE5N2RiODRiMTEzYmUyMjNjN2E3YWRjNzE5YjQ5NDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKICNp
bmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
KyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtl
clRocmVhZC5oIgogCiAjaWYgVVNFKEdMSUIpCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToK
ICAgICBJc0ZvckRlYnVnZ2luZyBtX2lzRm9yRGVidWdnaW5nIHsgSXNGb3JEZWJ1Z2dpbmc6Ok5v
IH07CiB9OwogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxTY29wZSogY29u
dGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KiBjb250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVw
OjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwogICAgIE1vZGVQcmVkaWNhdGUgbW9kZVByZWRpY2F0ZShk
ZWZhdWx0TW9kZSgpKTsKQEAgLTE0MywxMyArMTQzLDEzIEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6
cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQogICAgIHJ1bkNsZWFudXBUYXNrcyhjb250
ZXh0KTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRl
YnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkKK01lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUmIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5M
b29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpZZXMpOwogICAgIHJldHVybiBydW5Jbk1vZGUoJmNv
bnRleHQsIE1vZGVQcmVkaWNhdGUgeyBkZWJ1Z2dlck1vZGUoKSB9LCBXYWl0Rm9yTWVzc2FnZSk7
CiB9CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdv
cmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdh
aXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUo
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbW9kZSwg
V2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKG1vZGUgIT0gZGVidWdnZXJNb2RlKCkp
OwogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVn
Z2luZzo6Tm8pOwpAQCAtMTU4LDEwICsxNTgsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBX
b3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1
bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgTW9kZVBy
ZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRN
b2RlKQogewogICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFk
KCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+
dW5kZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAKICAgICBKU0M6OkpT
UnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIHRpbWVyQWRkZWRUYXNrID0g
V1RGOjpjcmVhdGVTaGFyZWRUYXNrPEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uVHlwZT4oW3RoaXNdIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55dGhp
bmcgaGVyZSwgd2UganVzdCB3YW50IHRvIGxvb3AgYXJvdW5kIHJ1bkluTW9kZQpAQCAtMTg2LDEz
ICsxODYsMTMgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1v
ZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICBpZiAod2FpdE1vZGUgPT0g
V2FpdEZvck1lc3NhZ2UgJiYgcHJlZGljYXRlLmlzRGVmYXVsdE1vZGUoKSAmJiBtX3NoYXJlZFRp
bWVyLT5pc0FjdGl2ZSgpKQogICAgICAgICB0aW1lb3V0RGVsYXkgPSBzdGQ6Om1pbih0aW1lb3V0
RGVsYXksIG1fc2hhcmVkVGltZXItPmZpcmVUaW1lRGVsYXkoKSk7CiAKLSAgICBpZiAoV29ya2Vy
U2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAo
YXV0byogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5yZWxl
YXNlSGVhcEFjY2VzcygpOwogICAgICAgICBzY3JpcHQtPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9u
KHRpbWVyQWRkZWRUYXNrKTsKICAgICB9CiAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1
bHQ7CiAgICAgYXV0byB0YXNrID0gbV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2VGaWx0ZXJl
ZFdpdGhUaW1lb3V0KHJlc3VsdCwgcHJlZGljYXRlLCB0aW1lb3V0RGVsYXkpOwotICAgIGlmIChX
b3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgeworICAg
IGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgewogICAgICAgICBzY3JpcHQt
PmFjcXVpcmVIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNjcmlwdC0+cmVtb3ZlVGltZXJTZXROb3Rp
ZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KQEAgLTIyMywxMCArMjIzLDEwIEBAIE1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2Jh
bFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBXb3Jr
ZXJSdW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2
b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRl
eHQtPnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJU
KGNvbnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAg
IEFTU0VSVChtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewpA
QCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdERlYnVnZ2VyVGFzayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKICAgICBwb3N0VGFza0Zvck1vZGUo
V1RGTW92ZSh0YXNrKSwgZGVidWdnZXJNb2RlKCkpOwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6
OlRhc2s6OnBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3Jr
ZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSog
Y29udGV4dCkKIHsKICAgICBpZiAoKCFjb250ZXh0LT5pc0Nsb3NpbmcoKSAmJiBjb250ZXh0LT5z
Y3JpcHQoKSAmJiAhY29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkg
fHwgbV90YXNrLmlzQ2xlYW51cFRhc2soKSkKICAgICAgICAgbV90YXNrLnBlcmZvcm1UYXNrKCpj
b250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9v
cC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKaW5kZXggYThjOWRl
YmQ4MGQ4MDk5NTRhN2E5ZDY5MGY3NzQwNmQyNTI4MjY2OC4uZWUyNmIzN2YyOTljYTY5OWMwNGMw
YjFjNzQ0MTUwNDgwODcxNTdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmgKQEAgLTM4LDcgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE1v
ZGVQcmVkaWNhdGU7Ci0gICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CisgICAgY2xhc3MgV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgY2xhc3MgV29ya2VyU2hhcmVkVGltZXI7CiAK
ICAgICBjbGFzcyBXb3JrZXJSdW5Mb29wIHsKQEAgLTQ3LDEzICs0NywxMyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIH5Xb3JrZXJSdW5Mb29wKCk7CiAgICAgICAgIAogICAgICAgICAv
LyBCbG9ja2luZyBjYWxsLiBXYWl0cyBmb3IgdGFza3MgYW5kIHRpbWVycywgaW52b2tlcyB0aGUg
Y2FsbGJhY2tzLgotICAgICAgICB2b2lkIHJ1bihXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAg
ICB2b2lkIHJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGVudW0g
V2FpdE1vZGUgeyBXYWl0Rm9yTWVzc2FnZSwgRG9udFdhaXRGb3JNZXNzYWdlIH07CiAKICAgICAg
ICAgLy8gV2FpdHMgZm9yIGEgc2luZ2xlIHRhc2sgYW5kIHJldHVybnMuCi0gICAgICAgIE1lc3Nh
Z2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwgY29uc3QgU3Ry
aW5nJiBtb2RlLCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKLSAgICAgICAgTWVzc2FnZVF1
ZXVlV2FpdFJlc3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYpOworICAg
ICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7
CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUmKTsKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAg
ICAgICBib29sIHRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxs
ZWQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KIAogICAgICAg
ICBwcml2YXRlOgotICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJHbG9iYWxTY29w
ZSopOworICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSopOwogCiAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIG1fdGFz
azsKICAgICAgICAgICAgIFN0cmluZyBtX21vZGU7CkBAIC04MywxMSArODMsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxv
b3BTZXR1cDsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2Vy
R2xvYmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOworICAgICAgICBN
ZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSosIGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0TW9kZSk7CiAKICAgICAgICAgLy8gUnVucyBh
bnkgY2xlYW4gdXAgdGFza3MgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSBxdWV1ZSBhbmQgcmV0
dXJucy4KICAgICAgICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgY29u
dGV4dCBpcyBjbG9zZWQgb3IgbG9vcCBoYXMgYmVlbiB0ZXJtaW5hdGVkLgotICAgICAgICB2b2lk
IHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bkNs
ZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGJvb2wg
aXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z0NvdW50ID49IDE7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAppbmRleCAzZDZlMGI3YWYwMWUyMTg1ZTFjOWZm
OWRiMDdmZmQzMGVkZGQyMTc4Li4zOTA4YmRmM2EyOTZjODFiNmY0YmE4ZThlMDhlM2ZjNTgyZWU1
ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcApAQCAtMjgsMjcgKzI4LDc2IEBA
CiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
LSNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29w
ZS5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgiCisjaW5jbHVkZSAiV29y
a2xldFBlbmRpbmdUYXNrcy5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXQpOwogCi1SZWY8V29ya2xldD4g
V29ya2xldDo6Y3JlYXRlKCkKK1dvcmtsZXQ6OldvcmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQor
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXb3JrbGV0KCkpOwogfQogCi1Xb3JrbGV0OjpXb3JrbGV0KCkKK1dvcmtsZXQ6On5Xb3Jr
bGV0KCkgPSBkZWZhdWx0OworCitEb2N1bWVudCogV29ya2xldDo6ZG9jdW1lbnQoKQoreworICAg
IHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30K
KworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dvcmtsZXRzLTEvI2RvbS13b3JrbGV0LWFkZG1v
ZHVsZQordm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkxTdHJp
bmcsIFdvcmtsZXRPcHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAg
aWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBVUkwgbW9kdWxlVVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KG1vZHVsZVVSTFN0cmluZyk7CisgICAgaWYgKCFtb2R1bGVVUkwuaXNWYWxpZCgpKSB7CisgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTW9kdWxlIFVSTCBp
cyBpbnZhbGlkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fcHJv
eGllcy5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJveGllcy5hcHBlbmRWZWN0b3IoY3JlYXRlR2xv
YmFsU2NvcGVzKCkpOworCisgICAgYXV0byBwZW5kaW5nVGFza3MgPSBXb3JrbGV0UGVuZGluZ1Rh
c2tzOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocHJvbWlzZSksIG1fcHJveGllcy5zaXplKCkpOwor
ICAgIG1fcGVuZGluZ1Rhc2tzU2V0LmFkZChwZW5kaW5nVGFza3MuY29weVJlZigpKTsKKworICAg
IGZvciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMpIHsKKyAgICAgICAgcHJveHktPnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtwZW5kaW5nVGFza3MgPSBwZW5kaW5nVGFza3Mu
Y29weVJlZigpLCBtb2R1bGVVUkwgPSBtb2R1bGVVUkwuaXNvbGF0ZWRDb3B5KCksIGNyZWRlbnRp
YWxzID0gb3B0aW9ucy5jcmVkZW50aWFscywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdB
Y3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUg
eworICAgICAgICAgICAgZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5mZXRj
aEFuZEludm9rZVNjcmlwdChtb2R1bGVVUkwsIGNyZWRlbnRpYWxzLCBbcGVuZGluZ1Rhc2tzID0g
V1RGTW92ZShwZW5kaW5nVGFza3MpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdB
Y3Rpdml0eSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVu
ZGluZ1Rhc2tzKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbiksIHBlbmRp
bmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHBl
bmRpbmdUYXNrcy0+YWJvcnQoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+ZGVjcmVtZW50
Q291bnRlcigpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgIH0KK30KKwordm9pZCBXb3Jr
bGV0OjpmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdUYXNrcyYgdGFza3MpCiB7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nVGFza3NTZXQu
Y29udGFpbnMoJnRhc2tzKSk7CisKKyAgICBtX3BlbmRpbmdUYXNrc1NldC5yZW1vdmUoJnRhc2tz
KTsKIH0KIAotdm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK2NvbnN0IGNoYXIqIFdvcmtsZXQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAogewotICAgIC8vIEZJWE1FOiBBZGQgcHJvcGVyIGltcGxlbWVudGF0aW9uLgotICAgIFVOVVNF
RF9QQVJBTShtb2R1bGVVUkwpOwotICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIHJldHVybiAi
V29ya2xldCI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXQuaAppbmRleCBiMmJlZGM2NTg2NWI3NGY1Zjk5NTZmMDRjZmNjYzNmODM1MTlmMmUxLi40
MTY4Njc0YzczYjI5OTA5YmE2Mjk2MjU3MjFiMzgwNTNlMjI3YmVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldC5oCkBAIC0yNSwyNyArMjUsNDUgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXb3Jr
bGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHk7Citj
bGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOwogCi1zdHJ1Y3QgV29ya2xldE9wdGlvbnM7Ci0KLWNs
YXNzIFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdy
YXBwYWJsZSB7CitjbGFzcyBXb3JrbGV0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1
YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXb3JrbGV0PiwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdvcmtsZXQ+IGNyZWF0ZSgpOwotICAgIHZpcnR1
YWwgfldvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+V29ya2xldCgpOwogICAgIAot
ICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAg
IHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRP
cHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgZmluaXNo
UGVuZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFza3MmKTsKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiYg
cHJveGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJveGllczsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
V29ya2xldCgpOworICAgIGV4cGxpY2l0IFdvcmtsZXQoRG9jdW1lbnQmKTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVH
bG9iYWxTY29wZXMoKSA9IDA7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgVmVjdG9yPFJl
ZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IG1fcHJveGllczsKKyAgICBIYXNoU2V0PFJlZlB0
cjxXb3JrbGV0UGVuZGluZ1Rhc2tzPj4gbV9wZW5kaW5nVGFza3NTZXQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCmluZGV4IDBiNzc0
YzI3NGFhZjIwZTBjYzg4Mzc3MjcxYzcxNmEwMGZhZjllNjEuLjI5M2NmMDZlMTU1NmU5YjU3N2Ey
YTRkMTk1ODhkMTY4MDZhYmVlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCkBA
IC0yNCw4ICsyNCwxMCBAQAogKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFeHBv
c2VkPVdpbmRvdywKKyAgICBHbG9iYWw9V29ya2xldCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlv
bgogXSBpbnRlcmZhY2UgV29ya2xldCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNl
PHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmts
ZXRPcHRpb25zIG9wdGlvbnMpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNW
U3RyaW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXgg
M2I3NTgyYWZmY2QwNGIxNDYyOTBmM2E3NDY4NjczNGFjNjkwZmVmMi4uZmI4YmFhNWRlZmM5ZTg3
NTNmMGM0MmVlY2ZmOWI2NGVlMzIzNDAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKLSNpZiBFTkFCTEUoQ1NT
X1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIKQEAg
LTM2LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCi0jaW5jbHVkZSAi
V29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNl
cHRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAgLTQ3LDEwICs0NCwyMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29y
a2xldEdsb2JhbFNjb3BlKTsKIAorV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiB3aW5kb3dVUkwpCisgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmts
ZXRTY3JpcHRDb250cm9sbGVyPih0aGlzKSkKKyAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVVbmlxdWUoKSkKKyAgICAsIG1fdXJsKHdpbmRvd1VSTCkKK3sKKyAgICBhdXRv
IGFkZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9iYWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CisgICAg
QVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdCk7CisKKyAgICBzZXRTZWN1cml0eU9y
aWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNvcHlS
ZWYoKSkpOworfQorCiBXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1
bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29k
ZSkKICAgICA6IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQogICAgICwgbV9zY3Jp
cHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4oV1RGTW92ZSh2bSksIHRoaXMp
KQogICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAg
ICwgbV91cmwoY29kZS51cmwoKSkKICAgICAsIG1fY29kZShXVEZNb3ZlKGNvZGUpKQogewogICAg
IGF1dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsK
QEAgLTYxLDcgKzcwLDcgQEAgV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2bSwgU2MKICAgICBBU1NFUlQoZG9j
dW1lbnQucGFnZSgpKTsKIAogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3Jp
Z2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7Ci0gICAgc2V0Q29udGVu
dFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBt
X2NvZGUudXJsKCkgfSwgKnRoaXMpKTsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFr
ZVVuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IHRoaXMtPnVybCgpIH0sICp0aGlz
KSk7CiB9CiAKIFdvcmtsZXRHbG9iYWxTY29wZTo6fldvcmtsZXRHbG9iYWxTY29wZSgpCkBAIC0x
MTMsNyArMTIyLDggQEAgU3RyaW5nIFdvcmtsZXRHbG9iYWxTY29wZTo6dXNlckFnZW50KGNvbnN0
IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZXZhbHVhdGUoKQog
ewotICAgIG1fc2NyaXB0LT5ldmFsdWF0ZShtX2NvZGUpOworICAgIGlmIChtX2NvZGUpCisgICAg
ICAgIG1fc2NyaXB0LT5ldmFsdWF0ZSgqbV9jb2RlKTsKIH0KIAogYm9vbCBXb3JrbGV0R2xvYmFs
U2NvcGU6OmlzSlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdApAQCAtMTM1LDcgKzE0NSw3IEBA
IFVSTCBXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBG
b3JjZVVURjgpIGNvbnN0CiB7CiAgICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IFVSTCgpOwotICAgIHJldHVybiBVUkwobV9jb2RlLnVybCgpLCB1cmwpOworICAgIHJldHVybiBV
UkwodGhpcy0+dXJsKCksIHVybCk7CiB9CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpsb2dF
eGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4mJiBzdGFjaykKQEAgLTE3MSw1ICsxODEsMTEgQEAgUmVmZXJyZXJQb2xp
Y3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJu
IFJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOwogfQogCit2b2lkIFdvcmtsZXRHbG9iYWxTY29w
ZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBG
SVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVs
bG9wdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCAyNWQ1NDlhYzRhMGFhNmZm
NzUyODc1NWQ3MDQ3YzgxNGVlN2RjNDA0Li45ODE0MTU5ZGUyYjUwM2E4MDhjODA4NzA0MmY2NzM1
MzY3YmZmMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaApAQCAtMjYsMzAgKzI2LDMyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENT
U19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVl
c3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgi
CisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVN
ZXNzYWdlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+Ci0jaW5j
bHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgV29ya2Vy
RXZlbnRMb29wOwotY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CiAKIGVudW0gV29ya2xl
dEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgV29ya2xldEdsb2JhbFNjb3Bl
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmll
clR5cGU+OwogCi1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrbGV0R2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGlj
IEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDog
cHVibGljIFJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEsIHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgogICAg
IHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtNTcsMTEgKzU5LDE2IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0ID0gSGFzaFNldDxjb25zdCBXb3Jr
bGV0R2xvYmFsU2NvcGUqPjsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV29ya2xldEdsb2Jh
bFNjb3Blc1NldCYgYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpOwogCisjaWYgRU5BQkxFKENT
U19QQUlOVElOR19BUEkpCiAgICAgdmlydHVhbCBib29sIGlzUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJ
TykKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKIAogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRM
b29wKCkgZmluYWw7CiAKLSAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29kZS51cmwoKTsgfQorICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV91cmw7IH0KIAogICAgIHZvaWQgZXZhbHVhdGUoKTsKIApAQCAtNzAsNyArNzcsNyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OmRlcmVmOwogCi0gICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJu
IG1fc2NyaXB0LmdldCgpOyB9CisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgp
IGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVN
ZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5h
bDsKIApAQCAtNzksNiArODYsMTAgQEAgcHVibGljOgogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNv
Y2tldFByb3ZpZGVyKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogCisgICAgLy8gV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9pc0Nsb3Npbmc7IH0KKwogICAgIGJvb2wgaXNDb250ZXh0VGhy
ZWFkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNTZWN1cmVDb250
ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtODYsNyArOTcsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogCisg
ICAgdm9pZCBmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYm
KTsKKwogcHJvdGVjdGVkOgorICAgIFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRv
d1VSTCk7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiwgUmVmPEpTQzo6Vk0+JiYs
IFNjcmlwdFNvdXJjZUNvZGUmJik7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFdvcmts
ZXRHbG9iYWxTY29wZSYpID0gZGVsZXRlOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShXb3JrbGV0
R2xvYmFsU2NvcGUmJikgPSBkZWxldGU7CkBAIC0xMzYsOCArMTUwLDEwIEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFza0dyb3VwOwogCisgICAgVVJMIG1f
dXJsOwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fanNSdW50aW1lRmxhZ3M7Ci0gICAgU2NyaXB0
U291cmNlQ29kZSBtX2NvZGU7CisgICAgT3B0aW9uYWw8U2NyaXB0U291cmNlQ29kZT4gbV9jb2Rl
OworICAgIGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpAQCAtMTQ1LDQgKzE2MSwzIEBAIHByaXZhdGU6CiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZSkKIHN0YXRpYyBib29sIGlzVHlw
ZShjb25zdCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVy
biBjb250ZXh0LmlzV29ya2xldEdsb2JhbFNjb3BlKCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRU5EKCkKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5pZGwKaW5kZXggZDc1OWYwY2UxZDE2Zjg2OTE4NjAxMjc3NmYwZGIxNmI2MWJhYTQ3
OC4uYmYwNzEzODRhM2YzMDhmZjZjNjQ1Yzk1ODRjYjNiMWNiOWU1ZTA5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCkBAIC0yNiw4ICsyNiw2
IEBACiBbCiAgICAgQ3VzdG9tUHJveHlUb0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9V29ya2xldCwK
LSAgICBFbmFibGVkQXRSdW50aW1lPUNTU1BhaW50aW5nQVBJLAotICAgIENvbmRpdGlvbmFsPUNT
U19QQUlOVElOR19BUEksCiAgICAgSlNMZWdhY3lQYXJlbnQ9SlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLAogICAgIEltcGxpY2l0VGhpcywKICAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09i
amVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFhYzVkOTFjYzdkMDI0MjBiNWZhZmYyMTkxYzBlZWY4ZmY5YTVk
N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGVQcm94eS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZldGNo
UmVxdWVzdENyZWRlbnRpYWxzLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldFBlbmRpbmdU
YXNrczsKKworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHkgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwg
Ym9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBpc0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCkgY29uc3QgPSAwOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFBlbmRpbmdUYXNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVu
ZGluZ1Rhc2tzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmZlNWQ3NjFhZjQ2ZjI2MTQxMTc5MDRhYzEwNGMz
MDQ5MTE0NWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFBlbmRpbmdUYXNrcy5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xl
dFBlbmRpbmdUYXNrczo6V29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiB3b3JrbGV0LCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICA6IG1fd29y
a2xldChtYWtlV2Vha1B0cih3b3JrbGV0KSkKKyAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21p
c2UpKQorICAgICwgbV9jb3VudGVyKGNvdW50ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKK30KKwordm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjphYm9ydChFeGNlcHRpb24mJiBl
eGNlcHRpb24pCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2Nv
dW50ZXIgPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY291bnRlciA9IC0xOworICAg
IG1fcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICBpZiAobV93b3JrbGV0
KQorICAgICAgICBtX3dvcmtsZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7Cit9CisKK3Zv
aWQgV29ya2xldFBlbmRpbmdUYXNrczo6ZGVjcmVtZW50Q291bnRlcigpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAgIHJl
dHVybjsKKworICAgIC0tbV9jb3VudGVyOworICAgIGlmICghbV9jb3VudGVyKSB7CisgICAgICAg
IG1fcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgICAg
ICBtX3dvcmtsZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7CisgICAgfQorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0UGVuZGluZ1Rhc2tzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVu
ZGluZ1Rhc2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMzZDZiYmFiZTBlOWI5M2UyODNhMzI4NjcxNWNhODlk
YzI2YzA5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRQZW5kaW5nVGFza3MuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0Owor
CisvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29ya2xldHMvI3BlbmRpbmctdGFz
a3Mtc3RydWN0CitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFdvcmtsZXRQZW5kaW5nVGFza3M+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFdvcmtsZXRQZW5kaW5nVGFza3M+IGNyZWF0ZShXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdvcmtsZXRQZW5kaW5nVGFza3Mod29ya2xldCwgV1RGTW92ZShw
cm9taXNlKSwgY291bnRlcikpOworICAgIH0KKworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uJiYp
OworICAgIHZvaWQgZGVjcmVtZW50Q291bnRlcigpOworCitwcml2YXRlOgorICAgIFdvcmtsZXRQ
ZW5kaW5nVGFza3MoV29ya2xldCYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmLCBpbnQgY291
bnRlcik7CisKKyAgICBXZWFrUHRyPFdvcmtsZXQ+IG1fd29ya2xldDsKKyAgICBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4gbV9wcm9taXNlOworICAgIGludCBtX2NvdW50ZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMjBhNmY4NTYxODU4YWRmYmUyZTJiYzE4ZWJm
NzE1MGI5N2FkMTRmOC4uMTdkZjVlMWYzY2YwNjU3MTRiY2VmNzVlZDg1ZmNhZDUzOGY2ZTgwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmNwcApAQCAtMjYsOCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQ
SSkKLQorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNF
eGVjU3RhdGUuaCIKQEAgLTU2LDYgKzU1LDExIEBAIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpX
b3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8Vk0+JiYgdm0sIFdvcmtsZXRHbG9iYWxTY29wCiAg
ICAgSlNWTUNsaWVudERhdGE6OmluaXROb3JtYWxXb3JsZChtX3ZtLmdldCgpKTsKIH0KIAorV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9i
YWxTY29wZSogd29ya2xldEdsb2JhbFNjb3BlKQorICAgIDogV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIoVk06OmNyZWF0ZSgpLCB3b3JrbGV0R2xvYmFsU2NvcGUpCit7Cit9CisKIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjp+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKQogewogICAgIEpTTG9ja0hv
bGRlciBsb2NrKHZtKCkpOwpAQCAtMTQ1LDEwICsxNDksMTkgQEAgdm9pZCBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCiAgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkp
CiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGlm
IChpczxQYWludFdvcmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7CiAg
ICAgICAgIGluaXRTY3JpcHRXaXRoU3ViY2xhc3M8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVBy
b3RvdHlwZSwgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZSwgUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGU+KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJf
QVVESU8pCisgICAgaWYgKGlzPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9i
YWxTY29wZSkpIHsKKyAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlUHJvdG90eXBlLCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLCBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZT4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CkBAIC0xOTYsNSArMjA5LDYyIEBAIHZvaWQgV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OnNldEV4Y2VwdGlvbihKU0M6OkV4Y2VwdGlvbiogZXhjZXB0
aW9uKQogICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBleGNl
cHRpb24pOwogfQogCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZWxlYXNlSGVhcEFj
Y2VzcygpCit7CisgICAgbV92bS0+aGVhcC5yZWxlYXNlQWNjZXNzKCk7Cit9CisKK3ZvaWQgV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmFjcXVpcmVIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5o
ZWFwLmFjcXVpcmVBY2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
YWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAo
SlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHRpbWVyLT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFj
ayk7CisgICAgfTsKKworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNh
bGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxi
YWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7
Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnJlbW92ZVRpbWVyU2V0Tm90aWZp
Y2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2Fs
bGJhY2spCit7CisgICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVyKiB0
aW1lcikgeworICAgICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB0aW1lci0+cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisK
KyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAg
ICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBw
cm9jZXNzVGltZXIobV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCkKK3sK
KyAgICBpZiAobV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICB7CisgICAgICAgIC8vIFRoZSBtdXRleCBwcm92aWRlcyBhIG1lbW9yeSBiYXJyaWVyIHRvIGVu
c3VyZSB0aGF0IG9uY2UKKyAgICAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc1Rl
cm1pbmF0aW5nRXhlY3V0aW9uKCkgd2lsbAorICAgICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3Qg
dGhhdCBsZXhpY2FsR2xvYmFsT2JqZWN0IHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQu
CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxv
Y2spOworICAgICAgICBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24gPSB0cnVlOworICAgIH0KKyAg
ICBtX3ZtLT5ub3RpZnlOZWVkVGVybWluYXRpb24oKTsKK30KKworYm9vbCBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0Cit7CisgICAgLy8gU2Vl
IGNvbW1lbnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4
IHVzYWdlLgorICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlv
bkxvY2spOworICAgIHJldHVybiBtX2lzVGVybWluYXRpbmdFeGVjdXRpb247Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZTM2ZDJhMjQyYmY1NDY0ZmEyN2NmM2Rh
OWFiNTI4NGYwMDA0ZDZlZS4uNmQ0M2NlNWY5ZmZkMmE3MGFmMGJmNmU1YWVlNTRjZDhmYWM3MmYy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oCkBAIC0yNSw4ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENT
U19QQUlOVElOR19BUEkpCi0KKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1N0cm9uZy5oPgpAQCAtNDYsOSArNDUsMTEgQEAgY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7
CiBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsK
IAotY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXIgeworLy8gRklYTUU6IFdlIHNob3VsZCBz
aGFyZSBtb3JlIGNvZGUgd2l0aCBXb3JrZXJTY3JpcHRDb250cm9sbGVyLgorY2xhc3MgV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2xldFNjcmlwdENvbnRyb2xsZXIpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcihXb3JrbGV0R2xvYmFsU2NvcGUqKTsKICAgICBXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcihSZWY8SlNDOjpWTT4mJiwgV29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgfldvcmts
ZXRTY3JpcHRDb250cm9sbGVyKCk7CiAKQEAgLTY0LDYgKzY1LDE1IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRp
c2FibGVXZWJBc3NlbWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKKyAgICB2b2lk
IHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2Vzcygp
IGZpbmFsOworCisgICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9v
cFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92
ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uQ2FsbGJhY2spIGZpbmFsOworCisgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0
aW9uKCk7CisgICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CisK
ICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNl
cHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKQEAg
LTg3LDcgKzk3LDggQEAgcHJpdmF0ZToKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUqIG1fd29ya2xl
dEdsb2JhbFNjb3BlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrbGV0Q29uc29sZUNsaWVudD4g
bV9jb25zb2xlQ2xpZW50OwogICAgIEpTQzo6U3Ryb25nPEpTV29ya2xldEdsb2JhbFNjb3BlPiBt
X3dvcmtsZXRHbG9iYWxTY29wZVdyYXBwZXI7CisgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVk
VGVybWluYXRpb25Mb2NrOworICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5jcHAKaW5kZXggNmExMDFjMzk1OTNjYzRjMTU0Yzc0NWY2ZDc5NzM3YTAy
YTkyM2Y2ZC4uMGI5YWIxZGNlMzRhNTIwZDgyZTJmYWQ1ZjVkMDZhODY5ZWY3NGQ5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgc3RvcCgpOwogICAgIH0KIAotICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24t
PnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCh7IH0p
OyB9CiAgICAgdm9pZCBzdG9wKCkgeyBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7IH0KICAgICBib29s
IGlzUGxheWluZygpIHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmlzUGxheWluZygpOyB9CiAgICAg
dW5zaWduZWQgZnJhbWVzUGVyQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+
ZnJhbWVzUGVyQnVmZmVyKCkgOyB9CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKIAogICAg
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBt
X2Rlc3RpbmF0aW9uOwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcAppbmRleCAwNjk0NWJhZmQ1ZDE4OWM3YTBmOWM3MjQwMmJiODg5ZGM4MDdm
NmY0Li44MjEzODAwYjlmMTBjNTgyNjBlMDdhNzkwZjdjYjIwYTdlMGVhMDc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC00MywxMCArNDMsMTAgQEAgdXNpbmcgQXVk
aW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKIHVzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uOwogdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6
QXVkaW9JT0NhbGxiYWNrOwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIHJldHVybiBtYWtlVW5p
cXVlPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eT4oY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQs
IG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0
ZSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKTsKIH0KIAogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxs
YmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpCkBAIC03Nyw4ICs3Nyw5IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdGFydCgpCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpCiB7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShk
aXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAg
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGlu
YXRpb24obV9kZXN0aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5n
KSwgMCk7CkBAIC04OSwxOSArOTAsMzEgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6OnN0b3AoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGlu
YXRpb25JRCksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cjo6U3RvcEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CisgICAgbV9k
aXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVz
RGF0YSYgYXVkaW9CdXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyByZW5kZXJpbmcgb24gdGhlIG1h
aW4gdGhyZWFkIHdoZW4gQXVkaW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUsIHdoaWNoIGlzIGxpa2Vs
eSBub3QgYSBnb29kIGlkZWEuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NF
UlQoYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCkpOwogICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6
Y3JlYXRlKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5m
cmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVk
aW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRpb0J1cy0+
c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tp
XS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIG1fY2FsbGJh
Y2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
LCBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb24pOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKKyAgICBhdXRvIGRvUmVuZGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgYXVkaW9CdXMgPSBXVEZNb3ZlKGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVk
aW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEu
b3V0cHV0UG9zaXRpb25dIHsKKyAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMu
Z2V0KCksIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOworICAgIH07CisgICAgaWYg
KG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgeworICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJU
aHJlYWQoW2RvUmVuZGVyID0gV1RGTW92ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb1Jl
bmRlcigpOworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvUmVuZGVyKCk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKaW5kZXggYWRhNmZlZWZmMzc0MzBmM2M0ZGQz
N2YxM2M3ZTNhNGU3NjZhMzlkYS4uOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3ZTE4ZWNmYjVh
YTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC00Nyw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogICAgIHVz
aW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKIAotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxs
YmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2Fs
bGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSk7CiAKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoKTsKQEAgLTU5LDcgKzU5LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24KLSAg
ICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1
bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7
IHJldHVybiBtX2lzUGxheWluZzsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBtX2ZyYW1lc1BlckJ1ZmZlciB7IDAgfTsKICAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CiAgICAgYm9vbCBtX2lzUGxheWlu
ZyB7IGZhbHNlIH07CisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rp
c3BhdGNoVG9SZW5kZXJUaHJlYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVn
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRl
Z3kuY3BwCmluZGV4IDJlODYxYTFlNGUzMWUxNDc4MmEyYjllODMxOThjMTY3YTU5NDYxMTMuLmQ1
YWVmMTUzNGFkMjM2NWQyMTM3YTE3YjZmNmQ0NGUxZWY4NTE5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApA
QCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYk1lZGlhU3RyYXRlZ3k6On5X
ZWJNZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLXN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5
OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKK1JlZjxXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6
OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwK
ICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRp
YVN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaAppbmRleCA4MTdjNGMyOWIxNzMyZjQ1ZjkwZTIxNTVkNjVjZWU4NDdjMTdiZWUy
Li42YjdiOWNlNjAzYTg3MzllNzFkOTA0NzVmY2M3ODcyNjhmNmQ5ZmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApA
QCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRl
QXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAgIFJlZjxXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1
ZGlvSU9DYWxsYmFjayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGZhZjkzYjczYTJiMDE0MTAz
ODA1YTVjYzZiY2E3YjY1M2E2NTI3YjcuLmViYmIzYmVhNmVkYmI0N2JjYjRlMmQwYjI5N2ZjZDA1
ZWJhNjMyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTY5LDcgKzY5LDcg
QEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3Rl
Ym9hcmRTdHJhdGVneSgpCiBjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1l
ZGlhU3RyYXRlZ3kgewogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBS
ZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRp
b0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5w
dXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCBkZjRhMWY3ODUwNGRiZTIzMGE5NzdlOTdmZDI1
OWQyNGU0ZjkyMDMxLi5lMDM0MjNkNzUzY2IxOTgwZWUzZWI4ODkyZmEyODUxZWU0OTYyNTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGFzdGVi
b2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJh
dGVneSgpCiBjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRl
Z3kgewogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFj
ayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9E
ZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxi
YWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJl
ck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQg
c2FtcGxlUmF0ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0
aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVs
cywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggNGQ2M2Y0MGNmZWQ3NzJhNTZjMjU0YzA1
MzEwNzMyNWEyZDlhYjZlMy4uNzQ2MTlkZTQ4ZTYxNDFhZDdkOWJlZDI2YzAxNjdmODFlMTVkOWI0
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODM4
LDYgKzgzOCw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlBy
ZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9P
ZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ6WUVTXTsKKyAgICBbcHJl
ZmVyZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVm
b3JlIGVhY2ggdGVzdC4KQEAgLTkzMSw3ICs5MzIsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJB
dWRpb0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TW9kZXJuVW5wcmVmaXhlZFdl
YkF1ZGlvRW5hYmxlZDpZRVNdOwotICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFi
bGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldE1lZGlhU291cmNlRW5hYmxlZDpZRVNdOwog
ICAgIFtwcmVmZXJlbmNlcyBzZXRTb3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZDpZRVNdOwog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMzFhZWMzODJlN2Jh
M2EzYWJmOWYyNzEyMmZiODRlMjA1Nzg4MDdjNC4uMWQwOTEzYjRlZjA1OWE0ZTFlNzkwNmM1ZWI0
OWRlZGI2NjQ2NDU5NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5n
cy9tYWluLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpA
QCAtNzIsNyArNzIsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9j
b2RlID0gZS5leGl0X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdl
bmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3Vw
cGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVu
Y3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICBk
ZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5
LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVw
ZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2Zp
bGVzX2xpc3QgPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4g
b3MubGlzdGRpcihpbnB1dF9kaXJlY3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lv
bikgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X2ZpbGUpCkBAIC05OCw2ICs5OCw3IEBAIGNsYXNz
IEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlJywgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLAogICAgICAgICAgICAgICAgJy0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZScsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAg
ICAgICctLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHBhaW50d29y
a2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgYXVkaW93b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS10ZXN0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlJywgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAog
ICAgICAgICAgICAgICAgJy0tdmFsaWRhdGVBZ2FpbnN0UGFyc2VyJ10KIApAQCAtMjAxLDYgKzIw
Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCcKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSA9ICdXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBw
YWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJworICAgICAgICBhdWRpb3dvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lID0gJ0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbCcKIAogICAgICAgICB3
b3JrX2RpcmVjdG9yeSA9IHRlbXBmaWxlLm1rZHRlbXAoKQpAQCAtMjEzLDkgKzIxNSwxMCBAQCBj
bGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYu
cmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxm
LnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxm
LnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90
IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNl
bGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1l
bnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lf
ZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9z
dXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBl
bmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRv
d19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29y
a2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5l
cmF0ZSBhIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRp
bC5ybXRyZWUod29ya19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzNSw2
ICsyMzgsOCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0
c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2Vz
KCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29y
a2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAg
YWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxl
X2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwg
YXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKKyAgICAgICAg
ICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0
ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGly
ZWN0b3J5LCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAg
ICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410195</attachid>
            <date>2020-09-30 19:49:10 -0700</date>
            <delta_ts>2020-09-30 21:30:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930194909.patch</filename>
            <type>text/plain</type>
            <size>164587</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5hM2UxZTYxZGJjZDExNWRkMmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFi
bGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAg
Y29uZGl0aW9uOiBFTkFCTEUoV0VCX0FVRElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0
TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVl
NDYzNTU0NmY3NmNmOTBlLi4xOTQzODAyM2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYs
NiArMTc2Nyw3IEBAIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChX
ZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJRVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFD
RV9JTkNMVURFX0RJUkVDVE9SSUVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMsOCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmlu
ZGluZ3MKICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAt
LXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfSkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5k
aW5ncykKIAogaWYgKEVOQUJMRV9XRUJJTlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFk
Y2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVk
MjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtMzMwLDYgKzMzMCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGEx
M2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTEsNCArMSw1IEBACiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhj
ZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJh
dGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRp
YVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXVkaW9UcmFja01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1
OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4yYzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYy
MDYwNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydQogU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAogUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1QID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNf
RklMRSA9ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApA
QCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkKICMKIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4s
JSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVS
TlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAk
KEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5D
SUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RF
UEVOREVOQ0lFUykKIAkkKGZvcmVhY2ggZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+
JChJRExfRklMRVNfVE1QKSQoTkwpKQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1f
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJ
TEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAt
LWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9N
QUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXBy
b2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkg
LS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNw
YWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0
cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxF
U19UTVApCiAKIEpTJS5jcHAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQo
SURMX0FUVFJJQlVURVNfRklMRSkgJChJRExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVf
QU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMy
MmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmVi
ZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVk
QXRSdW50aW1lPUF1ZGlvV29ya2xldCwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRh
YmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5
MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMuLmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0
NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldC5jcHAKQEAgLTMxLDE1ICszMSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1
ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1JlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigq
bmV3IEF1ZGlvV29ya2xldChkb2N1bWVudCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiB3b3JrbGV0OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xl
dChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitW
ZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7
CisgICAgLy8gV2ViQXVkaW8gdXNlcyBhIHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJu
IHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVk
aW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQoKQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1
ZGlvV29ya2xldDo6cHJveHkoKSBjb25zdAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5w
cm94aWVzKCk7CisgICAgaWYgKHByb3hpZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHBy
b3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1
ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQwNTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRk
NDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaApAQCAtMzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1
YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3Jl
YXRlKCk7CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
CisgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3Vt
ZW50Jik7CisKKyAgICAvLyBXb3JrbGV0LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNj
b3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmlkbAppbmRleCBiYzVlYThmMGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3
Li44MGM2YTcyNDAxODNjNDc1NzQ2MjljODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsy
OCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0
dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAg
ICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJl
Q29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyNjBlMjZmZDE4ODhh
NmU0Yzk1ZTc4OTQ1NjZkOTk3ZjYzNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSk7CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShB
dWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCisgICAgOiBXb3JrbGV0R2xvYmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwpCisg
ICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cit9
CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSA9
IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlpbmdU
aHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJkMjMz
YWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVjdCBX
b3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0IFdv
cmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7Cisg
ICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1bmRl
cmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
KTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JF
R0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJu
IGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcwOTJh
NGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRp
b1dvcmtsZXQsCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb05h
dGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVF
eG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblByb3Rv
dHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNlIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJbXBs
ZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcy
MTYxNGJiY2EyYmM5YTA1ZmIwZTk0YmFmMWNlYmI2OGM5M2FhMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVESU8p
CisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUgIkF1
ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmtsZXQobWFr
ZVdlYWtQdHIod29ya2xldCkpCisgICAgLCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3JrbGV0VGhy
ZWFkOjpjcmVhdGUoeyB3b3JrbGV0LmRvY3VtZW50KCktPnVybCgpIH0pKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dvcmtsZXRUaHJlYWQtPnN0YXJ0KCk7Cit9CisK
K0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7CisgICAgbV93b3JrbGV0VGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1vZGUpOworICAgIHJldHVybiB0
cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhN2FkZjRmMjgzODAz
YWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldDsKK2NsYXNzIEF1ZGlvV29ya2xldFRo
cmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgOiBwdWJsaWMgV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSh3b3Jr
bGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCk7CisKKyAg
ICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRoZSBtYWluIHRocmVhZCB0byBwb3N0IHRhc2sg
YmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0
cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBXZWFr
UHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0OworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+
IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGUuaWRsCmluZGV4IDU2MjcxNDg2NjNmMDQyMThiMWU1NTA1MTc1YjA0OTVhNTQ2
OTEyMDYuLjM0MGI4Y2FiMWQyNDM0MGY5YTY2N2I0ZWE3NTJiYjVjN2YyYzMzMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlk
bApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAg
IEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVk
aW9Xb3JrbGV0LAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
LAogICAgIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKaW5kZXggYTllMTliNjk1
ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5ZjExZjkwNS4uODcxYWVlMDAwZjhkNTBlYzRjMzA0NTcx
OTdmNWIyYjQyZjA0ZDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKQEAgLTI4LDcgKzI4LDcg
QEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5n
PUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwKIF0gZGlj
dGlvbmFyeSBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAg
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHMgPSAxOwogICAgIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTc3ZjM5OTQ0ZjJiZWNi
NzY4Yzg5NTZjYWY1ZWVhMmFkODhhMGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9X
b3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgor
CisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRl
cnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJz
IHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVkQ29weSgpCisgICAgfTsKK30KKworQXVkaW9X
b3JrbGV0VGhyZWFkOjpBdWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCisgICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycy5pc29sYXRlZENvcHko
KSkKK3sKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0KCkKK3sKKyAgICBhdXRv
IGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
ayk7CisKKyAgICBSZWY8VGhyZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTog
QXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsKKyAgICAgICAgd29ya2xldFRocmVhZCgpOworICAgIH0s
IFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICAvLyBGb3JjZSB0aGUgVGhyZWFkIG9iamVjdCB0byBi
ZSBpbml0aWFsaXplZCBmdWxseSBiZWZvcmUgc3RvcmluZyBpdCB0byBtX3RocmVhZCAoYW5kIGJl
Y29taW5nIHZpc2libGUgdG8gb3RoZXIgdGhyZWFkcykuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVu
Y2UoKTsKKyAgICBtX3RocmVhZCA9IFdURk1vdmUodGhyZWFkKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJlYWQoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpOworCisjaWYgVVNFKEdMSUIpCisgICAgR1JlZlB0cjxHTWFpbkNvbnRl
eHQ+IG1haW5Db250ZXh0ID0gYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBn
X21haW5fY29udGV4dF9wdXNoX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXI7Cisg
ICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29y
a2xldEdsb2JhbFNjb3BlTG9jayk7CisgICAgICAgIG1fd29ya2xldEdsb2JhbFNjb3BlID0gQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZSgqdGhpcywgbV9wYXJhbWV0ZXJzKTsKKworICAg
ICAgICBzY3JpcHRDb250cm9sbGVyID0gbV93b3JrbGV0R2xvYmFsU2NvcGUtPnNjcmlwdCgpOwor
CisgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CisgICAgICAgICAgICAvLyBU
aGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0
byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCisgICAgICAgICAgICAv
LyBmb3JiaWRFeGVjdXRpb24oKSBjb3VsZG4ndCBiZSBjYWxsZWQgZnJvbSBzdG9wKCkuCisgICAg
ICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5zY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7
CisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJ1bkV2ZW50TG9vcCgpOworCisjaWYgVVNFKEdMSUIpCisgICAg
Z19tYWluX2NvbnRleHRfcG9wX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgUmVmUHRyPFRocmVhZD4gcHJvdGVjdG9yID0gbV90aHJlYWQ7CisKKyAgICBB
U1NFUlQobV93b3JrbGV0R2xvYmFsU2NvcGUtPmhhc09uZVJlZigpKTsKKworICAgIFJlZlB0cjxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGU7CisgICAg
eworICAgICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhh
dCB3ZSBkb24ndCBjaGFuZ2UgbV93b3JrZXJHbG9iYWxTY29wZQorICAgICAgICAvLyB3aGlsZSBX
b3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNjZXNzaW5nIGl0LgorICAgICAgICBhdXRvIGxvY2sgPSBo
b2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAg
ICAgICAgLy8gRGVsYXkgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBXb3JrZXJHbG9iYWxTY29wZSBj
b250ZXh0IHVudGlsIGFmdGVyIHdlJ3ZlIHVubG9ja2VkIHRoZQorICAgICAgICAvLyBtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2VyR2xvYmFsU2NvcGVNdXRleC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVz
ZSBkZXN0cnVjdGluZyB0aGUKKyAgICAgICAgLy8gY29udGV4dCB3aWxsIHRyaWdnZXIgdGhlIG1h
aW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5zdCB1cyB0byBkZWxldGUgdGhlIFdvcmtlclRocmVhZAor
ICAgICAgICAvLyBvYmplY3QsIGFuZCB0aGUgV29ya2VyVGhyZWFkIG9iamVjdCBvd25zIHRoZSBt
dXRleCB3ZSBuZWVkIHRvIHVubG9jayBhZnRlciB0aGlzLgorICAgICAgICB3b3JrbGV0R2xvYmFs
U2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUobV93b3JrbGV0R2xvYmFsU2NvcGUpOworICAgIH0KKwor
ICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0aGUgY29udGV4dCwgd2hp
Y2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCisgICAgLy8gV2UgY2Fubm90
IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3Ro
ZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95IHRoZW0uCisgICAgd29y
a2xldEdsb2JhbFNjb3BlVG9EZWxldGUgPSBudWxscHRyOworCisgICAgLy8gU2VuZCB0aGUgbGFz
dCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJlIERlcmVmJ2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KV0geyB9KTsKKworICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJlYWR5IGRlc3Ry
b3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBhY2Nlc3MgInRoaXMiLgor
ICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpy
dW5FdmVudExvb3AoKQoreworICAgIC8vIERvZXMgbm90IHJldHVybiB1bnRpbCB0ZXJtaW5hdGVk
LgorICAgIG1fcnVuTG9vcC5ydW4obV93b3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFk
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWUyNzAyYzk4ZmRmODNmOTc1Mjk0NGE0NTBjOTM0YWM4NTM3OTQ2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CisKK3N0cnVjdCBXb3JrbGV0UGFyYW1l
dGVycyB7CitwdWJsaWM6CisgICAgVVJMIHdpbmRvd1VSTDsKKworICAgIFdvcmtsZXRQYXJhbWV0
ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFk
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRocmVhZD4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVhdGUoY29uc3QgV29y
a2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAgIH0KKworICAgIHZv
aWQgc3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1
bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIHZv
aWQgd29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAg
V29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRlcnMgbV9wYXJhbWV0
ZXJzOworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFs
U2NvcGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
azsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUzMDMwN2QyMTA5NDRm
M2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwogICAgICwgbV9sb2dn
ZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRl
bnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUo
KSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAg
LCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7CiAgICAgLy8gQWNj
b3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZp
Z2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscwogICAgICwg
bV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVl
TG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0Ojpj
cmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkp
CiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuaWRsCmluZGV4IGRmOTM1YTQwOGY0Y2IwNDNhN2Q4OTdkYjYzNzNiNDE0
NzdkOGQ3NDguLjZjNTVlNmRlMWRiYjQ4YjhkMDUyYjAzMzdjYjA5MTRkOTYwNTA5YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbApAQCAtNDIsNyArNDIsNyBAQAogICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRv
IHRoaXMgbGlzdGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlz
dGVuZXI7CiAKLSAgICBbU2FtZU9iamVjdCwgU2VjdXJlQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGlu
Zz1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3Jr
bGV0OworICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7
CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0U3RhdGUgc3RhdGU7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCmluZGV4IDc1MWRlOTE4Y2UxZGMzNmExYzc5ZTk1MDNjOTI4ZjRmODlmMDk2YmMu
LmFlMzRmZmJhMjNjZGExNmNkOWFhNzQ2MGU3YTg3MmU3OTgyMTNlOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDEwICszMCwxMyBAQAogCiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlv
V29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtOTksMTggKzEwMiwzMCBA
QCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkKQogICAgICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9u
LgogICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICAgICAgY3JlYXRl
RGVzdGluYXRpb24oKTsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAg
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rp
b24oKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKK0Z1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9p
ZCgpPiYmKT4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkRnVuY3Rpb24oKQoreworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCku
YXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICByZXR1cm4gW3dvcmtsZXRQcm94eSA9
IG1ha2VSZWYoKndvcmtsZXRQcm94eSldKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgewor
ICAgICAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxT
Y29wZShbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAg
cmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7
CiAgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICBt
X2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE4LDcgKzEzMyw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjpyZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsK
ICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQot
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgY29udGV4dCgpLnBv
c3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApAQCAtMTYzLDcgKzE3OCw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGNoYW5uZWxDCiAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAg
ICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigp
OwotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9u
LT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGVkZTE1MzNjMTY0ODI5
Y2YxZTIzYmE5M2MyOWE4ODYzNDIwM2U0ZDIuLjdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQy
MDA1YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDcsNiArNDcsOCBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNl
QXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0
aW9uKCk7CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpOworCiAgICAgdm9pZCBpbml0aWFsaXplKCkgZmluYWw7
CiAgICAgdm9pZCB1bmluaXRpYWxpemUoKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZpbmFsOwpAQCAtNjEsNyArNjMsNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNQbGF5aW5nKCkgZmluYWw7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlv
bj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5h
dGlvbjsKICAgICBTdHJpbmcgbV9pbnB1dERldmljZUlkOwogICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZJbnB1dENoYW5uZWxzIHsgMCB9OwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmYWEzMzY1MmVkYjM3NjNiMzljMWY2YmI0
N2Y2YmIyNGZhMDNjNDIwLi41M2I1NTQxM2U5MjYxYjc3MGVmN2FjM2JhYWQ2ZDg2ZTBjODI5ZWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0zMSw3ICszMSwxMCBAQAogI2lu
Y2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAi
QXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtOTYsOSArOTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0
cnVlOwogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwogCi0gICAgLy8g
RklYTUU6IFNob3VsZCB3ZSBjYWxsIGxhenlJbml0aWFsaXplIGhlcmU/Ci0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2UgY3JlYXRl
IGZvciBvZmZsaW5lIGF1ZGlvLgotICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUo
Im9mZmxpbmUgcmVuZGVyZXIiLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyldKCkgbXV0YWJsZSB7CisgICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gb2ZmbGluZVJlbmRlcigpOwogICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCByZXN1bHQsIGN1cnJlbnRTYW1wbGVGcmFtZSA9IG1fY3VycmVudFNhbXBs
ZUZyYW1lLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewogICAgICAg
ICAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gZmFsc2U7CkBAIC0xMTQsNyArMTE1LDE3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsK
LSAgICB9LCBUaHJlYWRUeXBlOjpBdWRpbyk7CisgICAgfTsKKworICAgIGlmIChhdXRvKiB3b3Jr
bGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICB3
b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtvZmZUaHJl
YWRSZW5kZXJpbmcgPSBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG9mZlRocmVhZFJlbmRlcmluZygpOwor
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRo
ZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCisgICAgbV9y
ZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFdURk1vdmUo
b2ZmVGhyZWFkUmVuZGVyaW5nKSwgVGhyZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggOTVjYzEwODU1ZDhiYWZlZDdhNDUzYzRiZTlmNGQ5MmRl
MjQ1MzdiYi4uYzdlY2ZkZDE1NWM1MjgwZDU4NTRiZmI1MmJlYmVhMDI4NGFkYjdhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTIwNSw3ICsyMDUsMTAgQEAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCitNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAogTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcApAQCAtMjU3OSw2ICsyNTgyLDcgQEAgd29y
a2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0LmNwcAog
d29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcAogd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAog
eG1sL0RPTVBhcnNlci5jcHAKQEAgLTI2ODAsNiArMjY4NCw3IEBAIEpTQXVkaW9UaW1lc3RhbXAu
Y3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1dvcmts
ZXQuY3BwCitKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogSlNBdWRpb1dvcmtsZXROb2Rl
LmNwcAogSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAKIEpTQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTJkYjNjMjEwY2VhY2U1Mjk5MTg2OGVjYjBj
YjczNjM1Y2ZlZDAuLmIwYzI5NzBmNWFjZGY5ZTIzMzBlYmY4ZDdhOTQwMTJkNWU2MDMzODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI0NTEsNiArMjQ1MSwxMCBAQAogCQk4MzNCOUUzMjFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNDFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJBMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oICov
OyB9OwogCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUy
QzFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggKi87IH07CisJCTgz
M0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCRDgxMzI1MjRENEUyMDA2
RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovOyB9OworCQk4MzNCRDgxODI1MjRENEY1
MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovOyB9OworCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5oICovOyB9OworCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5oICovOyB9OwogCQk4MzNEMUM3NjI0RDhENTRGMDBFODEzREYgLyog
V2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmggKi87IH07CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNo
YW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTgzNDNEOTg0MjREMERFRTkwMDlBQkQ0OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0M0Q5ODEy
NEQwREVBOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmggKi87IH07CkBAIC0yNTA4
LDYgKzI1MTIsNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVu
dHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5o
ICovOyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUw
QjYzODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZG
QTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmls
ZVN5c3RlbS5oICovOyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8q
IFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlB
QUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAv
KiBIVE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyog
SUlSRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNTM1
LDYgKzI1NDAsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJn
ZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZP
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFG
NTI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IH07CisJCTgzRDZBQUU2MjUy
NEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjRE
QTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMu
aCAqLzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlB
MDFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI1NDQs
NiArMjU1MCw3IEBACiAJCTgzRkIzMzcxMUY1MDhBNTQwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aCAqLzsgfTsKIAkJODNGQjMzNzMxRjUwOEE1ODAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkYx
RjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3NTFG
NTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkMxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRo
cmVhZC5oICovOyB9OwogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0
MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBF
dmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkw
MjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5
IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwpAQCAtMTA1NzgsNiArMTA1ODUsMTMgQEAK
IAkJODMzQjlFMkQxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1GaWxlRW50
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRTFGNTA4RDgwMDBF
MEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5
RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTMyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNr
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrbGV0UGVuZGlu
Z1Rhc2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQTI1
MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMz
Q0Y3MEYyMERCM0Y1RjAwMTQxQkNDIC8qIEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlT2JzZXJ2
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3MzI0RDhE
NTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNEMUM3NTI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MTgsNyBAQAogCQk4Mzk5NDcwOTFG
NTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIg
LyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1
MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5
MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRN
TFdCUkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TFdCUkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiAr
MTA3NjcsNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVz
dEV2ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0
cFJlcXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1
MTFGMzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QmlxdWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5
RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJpcXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlF
MEQyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVh
ZEZpbHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEs
NiArMTA4MDcsOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURp
cmVjdG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2
RTFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAv
KiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAx
Nzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xl
dFRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
ZGlvV29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3
Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJ
bml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2MSw4IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0
ZXh0ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUw
RjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4
ICsxNzU3NSw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUu
aCAqLywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAg
Ki8sCiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywK
LQkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3Bw
ICovLAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtl
ci5oICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRl
ci5jcHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWls
ZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9t
ZXRyeS5oICovLApAQCAtMTg3MjAsNiArMTg3MzksOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0Yw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQy
NTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJ
ODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5n
UHJveHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9v
cC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3Au
aCAqLywKQEAgLTE5NzM4LDggKzE5NzU5LDExIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJE
RkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAw
NTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIw
MDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0
RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEw
MjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUy
MjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJCQkJODMzQkQ4MTUyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEz
MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEz
MjkyMTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJ
CQk0QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAq
LywKIAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODIsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBF
MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBB
OTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2
RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1
N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JE
ODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8s
CisJCQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuY3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlLmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuaWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlT3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dv
cmtsZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBC
MDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDggKzMwNDk4LDExIEBACiAJ
CQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAw
NkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmts
ZXROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUy
NTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAw
Qjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcy
LDYgKzMxODA2LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFS
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8q
IElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4
IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3
ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTUsNiBAQAog
CQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
Q29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5
MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEy
NTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ1OTUsNiArMzQ2MjksOCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlE
NiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdG
MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8q
IFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0NSw5
IEBACiAJCQkJNEJERUEzMjAyMTdFQzU1RjAwNTJERkNEIC8qIFdvcmtsZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRCN0Y5QzUyMjE4M0I1RTUwMDFDRUJBMCAvKiBXb3JrbGV0Q29uc29sZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEzMjUyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmts
ZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3
MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0FD
RDAxMzI1MjI5RTEwMDAwRDEyNEUgLyogV29ya2xldE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4
MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaAppbmRleCA2MmIwZDZkNTRhNGYwMDAyZGVlNGJkMmRmYzdlYzZlZDEzN2Q4NDY4
Li5iM2E4ZDViMTNjNDUxMWNmNzg0MjU3NTlkNjA1MTQ4MTExNDkwYzA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC01NSw2ICs1
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhBdWRpb0xpc3RlbmVyKSBcCiAg
ICAgbWFjcm8oQXVkaW9QYXJhbU1hcCkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldCkgXAorICAg
IG1hY3JvKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oQXVkaW9Xb3JrbGV0
Tm9kZSkgXAogICAgIG1hY3JvKEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSkgXAogICAg
IG1hY3JvKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDM4ZGY2
Nzc1MmU5MGE2YTJlMDE3NGNmYWZiYzRmODcxZWE4MWMxNGEuLjA3NjYwODM4MDc0ZTI2ZWJmNDMx
ZDUxYTlhZjMxMDE5YzU5YTA3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJET01HQ091dHB1dENvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIK
KyNpbmNsdWRlICJKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01CdWlsdGluQ29uc3RydWN0b3JCYXNlLmgiCiAjaW5j
bHVkZSAiSlNET01XaW5kb3cuaCIKQEAgLTY4LDkgKzY5LDEyIEBAIEpTVk1DbGllbnREYXRhOjpK
U1ZNQ2xpZW50RGF0YShWTSYgdm0pCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwg
bV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBD
ZWxsVHlwZTo6Y3JlYXRlPEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigpKQogI2VuZGlmCisg
ICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENl
bGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKENTU19Q
QUlOVElOR19BUEkpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlPigpKQotICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6
Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTV29ya2xldEdsb2JhbFNjb3BlPigpKQorI2VuZGlm
CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+KCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0KEpT
Qzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0
PigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oCmluZGV4IDgzYjgyMzRjMzM1ZGVkMTQ1MGQxODEzZmU4NDI5N2E5NzU4Mzg5NTEuLmI4NDQw
ZTg3NzBlNDcyOTFmN2VlMjA2MzE5OWVhMDVjM2M0YmIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTk5LDkgKzk5LDEyIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlOwogI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBt
X2hlYXBDZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShDU1NfUEFJ
TlRJTkdfQVBJKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFw
Q2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29w
ZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgc3RkOjp1bmlxdWVfcHRyPEpT
Qzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxpemF0
aW9uR2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGQwYTU0N2FjNTY3MzlmZGRlMWU3MGU4ZWMxOWIy
YjQ4ODVlYjU2MDkuLmUzOTAxODBmNTcxZjllMWUzNWJjOTIzYjFkNzcxZDRiOTVjZWRhNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpAQCAtNDQsNyArNDUsNyBAQCBjbGFz
cyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdv
cmtlckdsb2JhbFNjb3BlOwogCi1jbGFzcyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIHsKK2NsYXNz
IFdvcmtlclNjcmlwdENvbnRyb2xsZXIgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyU2NyaXB0Q29udHJvbGxl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlclNjcmlwdENv
bnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKQEAgLTY3LDcgKzY4LDcgQEAgcHVibGljOgog
ICAgIC8vIGZvcmJpZEV4ZWN1dGlvbigpL2lzRXhlY3V0aW9uRm9yYmlkZGVuKCkgdG8gZ3VhcmQg
YWdhaW5zdCByZWVudHJ5IGludG8gSlMuCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0
aHJlYWQuCiAgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7Ci0gICAgYm9v
bCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBpc1Rlcm1pbmF0aW5n
RXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBDYWxsZWQgb24gV29ya2VyIHRocmVh
ZCB3aGVuIEpTIGV4aXRzIHdpdGggdGVybWluYXRpb24gZXhjZXB0aW9uIGNhdXNlZCBieSBmb3Ji
aWRFeGVjdXRpb24oKSByZXF1ZXN0LAogICAgIC8vIG9yIGJ5IFdvcmtlciB0aHJlYWQgdGVybWlu
YXRpb24gY29kZSB0byBwcmV2ZW50IGZ1dHVyZSBlbnRyeSBpbnRvIEpTLgpAQCAtNzksMTEgKzgw
LDExIEBAIHB1YmxpYzoKIAogICAgIEpTQzo6Vk0mIHZtKCkgeyByZXR1cm4gKm1fdm07IH0KICAg
ICAKLSAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCk7Ci0gICAgdm9pZCBhY3F1aXJlSGVhcEFj
Y2VzcygpOworICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFj
cXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CiAKLSAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0
aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spOwotICAg
IHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGlt
ZXJOb3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlv
bihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsK
KyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6
OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOwogCiAgICAgdm9pZCBhdHRhY2hEZWJ1
Z2dlcihKU0M6OkRlYnVnZ2VyKik7CiAgICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVn
Z2VyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IDEwZjNlNjY4NjY1NDVhNWE2MGE5ZWU1YTlmODY3NGFlM2MyODQ5MzIu
LjU4ZmQxYTdhMjZmZGQxZGFjNGRiMmI3MGIxYzU0NTM3NWJjZDRmOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03NzUs
NyArNzc1LDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQogCiAgICAgIyBG
b3Igd29ya2VycywgdGhlIGdsb2JhbCBvYmplY3QgaXMgYSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJXb3JrZXJH
bG9iYWxTY29wZSI7Ci0gICAgIyBGb3Igd29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEg
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgIyBGb3Igd29ya2xldHMsIHRoZSBnbG9iYWwg
b2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUgb3IgYSBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS4KICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJXb3Jr
bGV0R2xvYmFsU2NvcGUiOwogCiAgICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZh
Y2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9j
ZXNzLWlkbHMucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3Mt
aWRscy5wbAppbmRleCBiZWUwZmM1MDY5MTlmY2NmZDE3NWY2OWNjNTIzYzU3NTZiYzA4YTg4Li5m
NGM4NGJjODhjNDExNDVkZDE2ZWQzODNkNGQzOWM0MmNjNWQ2OTQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbApAQCAtNDcsNiAr
NDcsNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwog
bXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkd29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGU7CitteSAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc3VwcGxl
bWVudGFsTWFrZWZpbGVEZXBzOwogbXkgJGlkbEF0dHJpYnV0ZXNGaWxlOwpAQCAtNjksNiArNzAs
NyBAQCBHZXRPcHRpb25zKCdkZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ3Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUsCiAgICAgICAgICAgICdwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGU9cycgPT4gXCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCisg
ICAgICAgICAgICdhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICd0
ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkdGVzdEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3N1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcz1zJyA9
PiBcJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcywKICAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNG
aWxlPXMnID0+IFwkaWRsQXR0cmlidXRlc0ZpbGUsCkBAIC04Myw2ICs4NSw3IEBAIGRpZSgnTXVz
dCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGCiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAt
LXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmlu
ZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0
IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRwYWlu
dFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNpZnkg
YW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXRlc3RH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHRlc3RHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpIHx8ICFkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUp
OwogZGllKCdNdXN0IHNwZWNpZnkgdGhlIGZpbGUgbGlzdGluZyBhbGwgSURMcyB1c2luZyAtLWlk
bEZpbGVOYW1lc0xpc3QuJykgdW5sZXNzIGRlZmluZWQoJGlkbEZpbGVOYW1lc0xpc3QpOwogZGll
KCdNdXN0IHNwZWNpZnkgSURMIGF0dHJpYnV0ZXMgZmlsZSB1c2luZyAtLWlkbEF0dHJpYnV0ZXNG
aWxlLicpIHVubGVzcyBkZWZpbmVkKCRpZGxBdHRyaWJ1dGVzRmlsZSk7CkBAIC05NSw2ICs5OCw3
IEBAICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5Q
YXRoSWZOZWVkZWQoJGRlZGljYXRlZFdvcmtlCiAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0
aElmTmVlZGVkKCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworJGF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRl
ZCgkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzdXBwbGVtZW50
YWxNYWtlZmlsZURlcHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcykgaWYgZGVmaW5lZCgkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKTsKIAogbXkgQGlkbEZp
bGVOYW1lczsKQEAgLTEzNSw2ICsxMzksNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Nv
ZGUgPSAiIjsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAi
IjsKK215ICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15
ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiAKIG15ICRpc29TdWJzcGFj
ZXNIZWFkZXJDb2RlID0gPDxFTkQ7CkBAIC0yMzcsNiArMjQyLDggQEAgZm9yZWFjaCBteSAkaWRs
RmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNoKSB7CiAgICAgICAgICAgICAgICAg
JHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAg
ICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiUGFpbnRXb3JrbGV0Iikgewog
ICAgICAgICAgICAgICAgICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
Lj0gJGF0dHJpYnV0ZUNvZGU7CisgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBl
cSAiQXVkaW9Xb3JrbGV0IikgeworICAgICAgICAgICAgICAgICRhdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVs
c2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENvbnRleHROYW1lKSB7CiAgICAgICAg
ICAgICAgICAgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNv
ZGU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjU0LDYgKzI2MSw3IEBAIEdlbmVyYXRlUGFy
dGlhbEludGVyZmFjZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiLCAkZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSIsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJ
bnRlcmZhY2UoIldvcmtsZXRHbG9iYWxTY29wZSIsICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNDb2RlLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0
ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIiwgJHBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkF1ZGlvV29ya2xldEds
b2JhbFNjb3BlIiwgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJ
bnRlcmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSBpZiBkZWZpbmVkKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEwZGFlMTEwN2QzMzRiYzhmNDNkZjJmNGY3ZTg0YTk4M2MzNWQ2NmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBAIC0wLDAgKzEsMiBAQAorcGFydGlh
bCBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgeworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAg
ICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpTQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAg
ICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3YjBhNTU4
YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVy
YXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWlu
ZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBh
bmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVp
bGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAppbmRleCAx
MzZlNGYxNGVjZmU1ZTRiOWY5Yzk1MjAyNzQzOWE0YTMxZDQ5NjQ1Li42YTBlMTk2NjQ1NDJlODE2
ODFjN2E2OTdlY2M3MTE1YjdhNGRmYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFp
bnRXb3JrbGV0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRPTUNTU05hbWVzcGFj
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NiwxMSAr
NTcsMTggQEAgY29uc3QgY2hhciogRE9NQ1NTUGFpbnRXb3JrbGV0OjpzdXBwbGVtZW50TmFtZSgp
CiAgICAgcmV0dXJuICJET01DU1NQYWludFdvcmtsZXQiOwogfQogCi12b2lkIFBhaW50V29ya2xl
dDo6YWRkTW9kdWxlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkws
IFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCisv
LyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG92ZXJyaWRlIGFuZCByZWx5IG9uIHRoZSBzdGFuZGFy
ZC1jb21wbGlhbnQgV29ya2xldDo6YWRkTW9kdWxlKCkgaW5zdGVhZC4KK3ZvaWQgUGFpbnRXb3Jr
bGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CisgICAgYXV0byogZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGlzIGZyYW1lIGlz
IGRldGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBkb3dubG9hZCB0aGUgc291cmNlIGZyb20gdGhlIFVSTAogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTExMzYKLSAgICBhdXRvIG1heWJl
Q29udGV4dCA9IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoZG9jdW1lbnQsIFNj
cmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7CisgICAgYXV0byBtYXliZUNvbnRleHQgPSBQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKCpkb2N1bWVudCwgU2NyaXB0U291cmNlQ29k
ZShtb2R1bGVVUkwpKTsKICAgICBpZiAoVU5MSUtFTFkoIW1heWJlQ29udGV4dCkpIHsKICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgT3V0T2ZNZW1vcnlFcnJvciB9KTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNzAsOSArNzgsMTUgQEAgdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVs
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGUKIAog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY29udGV4dC0+cGFpbnREZWZpbml0aW9uTG9jaygp
KTsKICAgICBmb3IgKGF1dG8mIG5hbWUgOiBjb250ZXh0LT5wYWludERlZmluaXRpb25NYXAoKS5r
ZXlzKCkpCi0gICAgICAgIGRvY3VtZW50LnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFt
ZShuYW1lLCBtYWtlUmVmKGNvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgZG9jdW1lbnQtPnNldFBh
aW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShuYW1lLCBtYWtlUmVmKGNvbnRleHQuZ2V0KCkp
KTsKICAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KIAorVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFs
U2NvcGVQcm94eT4+IFBhaW50V29ya2xldDo6Y3JlYXRlR2xvYmFsU2NvcGVzKCkKK3sKKyAgICAv
LyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiB7IH07Cit9CisKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCmluZGV4IGI5YjEzODVi
YjA4YTNmMWNlZDRlYjJiNDI0MDNkZDEwN2U1YTg0ZWUuLjA5NGFlNmMxMmY3NTE5Mzg1YmExYTYy
ZDdiYjIwNDgyMjNmMmMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQ
YWludFdvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0
LmgKQEAgLTQxLDE1ICs0MSwyMSBAQCBjbGFzcyBET01DU1NOYW1lc3BhY2U7CiAKIGNsYXNzIFBh
aW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFBhaW50V29ya2xldD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFBhaW50V29ya2xldD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBhaW50V29ya2xldCk7CisgICAgICAgIGF1dG8gd29ya2xldCA9IGFkb3B0UmVmKCpu
ZXcgUGFpbnRXb3JrbGV0KGRvY3VtZW50KSk7CisgICAgICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgICAgICByZXR1cm4gd29ya2xldDsKICAgICB9CiAKLSAgICB2b2lkIGFkZE1v
ZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYm
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7CisgICAgLy8gV29ya2xldC4KKyAg
ICB2b2lkIGFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMm
JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIFZlY3RvcjxSZWY8V29y
a2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIAogcHJp
dmF0ZToKLSAgICBQYWludFdvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAgZXhwbGljaXQgUGFpbnRX
b3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBXb3JrbGV0KGRvY3VtZW50KQor
ICAgIHsgfQogfTsKIAogY2xhc3MgRE9NQ1NTUGFpbnRXb3JrbGV0IGZpbmFsIDogcHVibGljIFN1
cHBsZW1lbnQ8RE9NQ1NTTmFtZXNwYWNlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAy
YWNmM2YxOGNhZGM2ODZiMzFlYzNhZDA1YmM1OGEwMWIwZWYzNGFlLi44ZTliMjE5MGY4ZTJiMWE3
NDlkMzNmYjMyYzE3ZDBlOWZiY2RjZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTg0
MzksNyArODQzOSw3IEBAIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
ciYgRG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uCiBQYWludFdvcmtsZXQmIERv
Y3VtZW50OjplbnN1cmVQYWludFdvcmtsZXQoKQogewogICAgIGlmICghbV9wYWludFdvcmtsZXQp
Ci0gICAgICAgIG1fcGFpbnRXb3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKTsKKyAgICAg
ICAgbV9wYWludFdvcmtsZXQgPSBQYWludFdvcmtsZXQ6OmNyZWF0ZSgqdGhpcyk7CiAgICAgcmV0
dXJuICptX3BhaW50V29ya2xldDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAppbmRleCAwNmEzZWM5MDY1NTgyNmZiY2Q5MWE4M2I2NDFlMjdmNTll
NzVkZTYwLi5hZWI1ODNjYTRiMmFlMjEzMzBhZTM0OTgzOTViYjY1ODMwZTA0OTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTI3LDYgKzEy
NywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NQYWludGluZ0FQSUVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQorICAgIHZvaWQgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBtX2F1ZGlvV29ya2xldEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIGF1ZGlv
V29ya2xldEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvV29ya2xldEVuYWJsZWQ7IH0K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICB2b2lkIHNldENTU1R5cGVk
T01FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fQ1NTVHlwZWRPTUVuYWJsZWQgPSBpc0VuYWJs
ZWQ7IH0KICAgICBib29sIGNzc1R5cGVkT01FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9DU1NU
eXBlZE9NRW5hYmxlZDsgfQpAQCAtMzAyLDYgKzMwNyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KENTU19QQUlOVElOR19BUEkpCiAgICAgYm9vbCBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZCB7IGZh
bHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGJvb2wgbV9hdWRpb1dv
cmtsZXRFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9P
TSkKICAgICBib29sIG1fQ1NTVHlwZWRPTUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sCmluZGV4IDc5MGRiNGI3ZTk2ZmE5NmRmODhmZDY3OGNhZTBjNzJlNTIzYTgx
OTkuLjdjZDVkZjEwZmZkMTBmZjczZDQ5M2JlMWMwOWE4MTlkMjQ1MjY0MDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKQEAgLTI1OSw4ICsyNTksNiBAQCBwcmVmaXhlZFdlYkF1ZGlvRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6
CiAgIGluaXRpYWw6IGZhbHNlCi1hdWRpb1dvcmtsZXRFbmFibGVkOgotICBpbml0aWFsOiBmYWxz
ZQogcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogZnVsbFNj
cmVlbkVuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXgg
NDNkNTc2NTI5OGMwNjc5MmM2ZGRjZTg1YzQyYTBhM2Y1NzVhODc4My4uOTg1MjA1ZGFiYWFiOGRh
Mzg2ZjY1NjRkODA5NmZkMjg2NTVjMWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlh
U3RyYXRlZ3kuaApAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgTm93UGxheWluZ0luZm87CiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oCisgICAgdmlydHVhbCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCmluZGV4IGRlYjc1N2RjNDVlNTc4NTg1MjE3ZmQzYmVj
MDcxMmI2NDRkNzUzNzQuLjE2MGM2NTc4ZTE1ZWQ1ZWE3NTI1ZGM3NjhiZDRlZjNmZGM3NGY0ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgQXVkaW9EZXN0aW5hdGlvbl9oCiAKICNpbmNs
dWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQw
LDE2ICs0MSwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiAvLyBUaGUgYXVkaW8gaGFyZHdh
cmUgcGVyaW9kaWNhbGx5IGNhbGxzIHRoZSBBdWRpb0lPQ2FsbGJhY2sgcmVuZGVyKCkgbWV0aG9k
IGFza2luZyBpdCB0byByZW5kZXIvb3V0cHV0IHRoZSBuZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1
ZGlvLgogLy8gSXQgb3B0aW9uYWxseSB3aWxsIHBhc3MgaW4gbG9jYWwvbGl2ZSBhdWRpbyBpbnB1
dCB3aGVuIGl0IGNhbGxzIHJlbmRlcigpLgogCi1jbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIHsKK2Ns
YXNzIEF1ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9E
ZXN0aW5hdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVk
aW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlm
aWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBw
YXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1
ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1
bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVy
VGhyZWFkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGlzUGxheWluZygpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggNzRh
ZDYxNmZhOWUyNWRlYjk5OWM5NmI2NjdlZDE0OTQ3MGJmNjg3Mi4uZGE0ZTRiMmM4YjYwNzM0ODNm
OWZhZGM2N2JhZmJmZmY4Njg1ZjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00
MSw3ICs0MSw3IEBAIGNvbnN0ZXhwciBzaXplX3QgZmlmb1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKIAogQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3Zl
cnJpZGUgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSA9IG51bGxwdHI7CiAK
LXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNl
SWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTU1LDcgKzU1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
IGNhbGwKICAgICBpZiAoQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSkKICAg
ICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUoY2FsbGJh
Y2ssIHNhbXBsZVJhdGUpOwogCi0gICAgYXV0byBkZXN0aW5hdGlvbiA9IG1ha2VVbmlxdWU8QXVk
aW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2Ft
cGxlUmF0ZSk7CisgICAgYXV0byBkZXN0aW5hdGlvbiA9IGFkb3B0UmVmKCpuZXcgQXVkaW9EZXN0
aW5hdGlvbkNvY29hKGNhbGxiYWNrLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KSk7CiAgICAgZGVzdGluYXRpb24tPmNvbmZpZ3VyZSgpOwogICAgIHJldHVybiBkZXN0aW5hdGlv
bjsKIH0KQEAgLTEwMyw5ICsxMDMsMTAgQEAgdW5zaWduZWQgQXVkaW9EZXN0aW5hdGlvbkNvY29h
OjpmcmFtZXNQZXJCdWZmZXIoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlckJ1cy0+bGVuZ3Ro
KCk7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYp
PiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpzdGFydCIpOworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdU
Rk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVk
aW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRVbml0KTsKIAogICAgIGlmICghcmVzdWx0KQpAQCAt
MTE2LDYgKzExNyw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIHsKICAg
ICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBPU1N0YXR1
cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgbV9kaXNw
YXRjaFRvUmVuZGVyVGhyZWFkID0gbnVsbHB0cjsKIAogICAgIGlmICghcmVzdWx0KQogICAgICAg
ICBzZXRJc1BsYXlpbmcoZmFsc2UpOwpAQCAtMTIzLDYgKzEyNSw3IEBAIHZvaWQgQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpzdG9wKCkKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElz
UGxheWluZyhib29sIGlzUGxheWluZykKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
aXNQbGF5aW5nTG9jayk7CiAgICAgaWYgKG1faXNQbGF5aW5nID09IGlzUGxheWluZykKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNzMsMTggKzE3NiwzOCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIg
bgogCiAgICAgLy8gQXNzb2NpYXRlIHRoZSBkZXN0aW5hdGlvbiBkYXRhIGFycmF5IHdpdGggdGhl
IG91dHB1dCBidXMgdGhlbiBmaWxsIHRoZSBGSUZPLgogICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1Rv
QnVzKGJ1ZmZlcnMsIG1fb3V0cHV0QnVzLmdldCgpLCBudW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9m
RnJhbWVzLCAwLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyID0g
bV9maWZvLT5wdWxsKG1fb3V0cHV0QnVzLnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc2l6
ZV90IGZyYW1lc1RvUmVuZGVyOwogCisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fZmlmb0xvY2spOworICAgICAgICBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbCht
X291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIC8vIFdoZW4g
dGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3Jr
bGV0VGhyZWFkLgorICAgIGlmIChtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGZyYW1lc1RvUmVuZGVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgc3RkOjp1bmlx
dWVfbG9jazxMb2NrPiBsb2NrKG1faXNQbGF5aW5nTG9jaywgc3RkOjp0cnlfdG9fbG9jayk7Cisg
ICAgICAgICAgICBpZiAobG9jay5vd25zX2xvY2soKSAmJiBtX2lzUGxheWluZykKKyAgICAgICAg
ICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICAgICAg
fSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9S
ZW5kZXIpOworCisgICAgcmV0dXJuIG5vRXJyOworfQorCisvLyBUaGlzIHJ1bnMgb24gdGhlIEF1
ZGlvV29ya2xldFRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBpcyBlbmFibGVkLCBvbiB0aGUgYXVk
aW8gZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZCBvdGhlcndpc2UuCit2b2lkIEF1ZGlvRGVzdGlu
YXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIp
Cit7CiAgICAgZm9yIChzaXplX3QgcHVzaGVkRnJhbWVzID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJh
bWVzVG9SZW5kZXI7IHB1c2hlZEZyYW1lcyArPSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpIHsKICAgICAgICAgaWYgKG1fcmVzYW1wbGVyKQogICAgICAgICAgICAgbV9yZXNhbXBs
ZXItPnByb2Nlc3ModGhpcywgbV9yZW5kZXJCdXMucHRyKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY2FsbGJhY2sucmVu
ZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIAorICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fZmlmb0xvY2spOwogICAgICAgICBtX2ZpZm8tPnB1c2gobV9yZW5kZXJCdXMucHRyKCkpOwog
ICAgIH0KLQotICAgIHJldHVybiBub0VycjsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2Fs
bGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKaW5kZXggMDBkZGEyZmIyYTM3YjgzZjEwZWZhNTI3
MWIxNzY4YTgwYjQ4MTFlYy4uMDg5NGQ2MjFhMmYxNTMyMjUxMjczNjUwYjZlNWEzZDNlYzk5NmY4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQXVkaW9C
dXM7CiBjbGFzcyBNdWx0aUNoYW5uZWxSZXNhbXBsZXI7CiBjbGFzcyBQdXNoUHVsbEZJRk87CiAK
LXVzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJh
dGUpOwordXNpbmcgQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgPSBSZWY8QXVk
aW9EZXN0aW5hdGlvbj4oKikoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAK
IC8vIEFuIEF1ZGlvRGVzdGluYXRpb24gdXNpbmcgQ29yZUF1ZGlvJ3MgZGVmYXVsdCBvdXRwdXQg
QXVkaW9Vbml0CiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgOiBwdWJsaWMgQXVkaW9EZXN0
aW5hdGlvbiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewpAQCAtNjUsMTEgKzY1LDE1IEBA
IHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwogCisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlv
bjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisKIHByaXZhdGU6Ci0gICAg
dm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5j
dGlvbjx2b2lkKCk+JiYpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
IAotICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0
aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
LCB1bnNpZ25lZCwgZmxvYXQpOworICAgIHZvaWQgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXpl
X3QgZnJhbWVzVG9SZW5kZXIpOworCisgICAgZnJpZW5kIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7CiAgICAgCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92
aWRlci4KICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpIGZpbmFsOwpAQCAtOTEsMTEgKzk1LDE0IEBAIHByaXZhdGU6CiAgICAgLy8gUmVzb2x2
ZXMgdGhlIGJ1ZmZlciBzaXplIG1pc21hdGNoIGJldHdlZW4gdGhlIFdlYkF1ZGlvIGVuZ2luZSBh
bmQKICAgICAvLyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZnJvbSB0aGUgYWN0dWFsIGF1ZGlvIGRl
dmljZS4KICAgICBVbmlxdWVSZWY8UHVzaFB1bGxGSUZPPiBtX2ZpZm87CisgICAgTG9jayBtX2Zp
Zm9Mb2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9y
ZXNhbXBsZXI7CiAgICAgQXVkaW9JT1Bvc2l0aW9uIG1fb3V0cHV0VGltZXN0YW1wOwogCiAgICAg
ZmxvYXQgbV9jb250ZXh0U2FtcGxlUmF0ZTsKKworICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwog
ICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IDhmZGViNmEyNDI0ODQ5Y2FjMTdiYmU5MGFhZTcx
MmE4OWEyNGQxMDAuLmMwNWFlNmJlNjI5ZGRiM2RmNjcyMjgyOTExMWNlOGI2NDAwZWU2OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgc3RhdGljIHZvaWQgYXV0b0F1ZGlvU2lua0NoaWxkQWRkZWRDYWxsYmFjayhHc3RDaGlsZFBy
b3h5KiwgR09iamVjdCogb2JqZWN0LCBnY2gKICAgICAgICAgZ19vYmplY3Rfc2V0KEdTVF9BVURJ
T19CQVNFX1NJTksob2JqZWN0KSwgImJ1ZmZlci10aW1lIiwgc3RhdGljX2Nhc3Q8Z2ludDY0Pigx
MDAwMDApLCBudWxscHRyKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0aW5hdGlv
bj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNv
bnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTog
bWFrZSB1c2Ugb2YgaW5wdXREZXZpY2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNjAsNyArNjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbAogICAgIGlmIChudW1iZXJPZk91dHB1dENoYW5u
ZWxzICE9IDIpCiAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgl
dSwgJXUsICVmKSAtIHVuaGFuZGxlZCBvdXRwdXQgY2hhbm5lbHMiLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogCi0gICAgcmV0dXJu
IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcj4oY2FsbGJhY2ssIHNhbXBsZVJh
dGUpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIo
Y2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsKIH0KIAogZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFy
ZHdhcmVTYW1wbGVSYXRlKCkKQEAgLTE2NSw3ICsxNjUsNyBAQCBnYm9vbGVhbiBBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAg
cmV0dXJuIFRSVUU7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQo
KQordm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1
bmN0aW9uPHZvaWQoKT4mJik+JiYpCiB7CiAgICAgQVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxl
KTsKICAgICBpZiAoIW1fYXVkaW9TaW5rQXZhaWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmgKaW5kZXggY2ZlNjg5MjA4ZDA5NjhhNTFhOGJiMWQxZTg3ZjZlMTlkMGYy
MzE2Ni4uZDU1MTA0Yzg4Y2NiY2RmZmZmOTdjNGU3YTQ5NDk4NmY5OTZiZjhlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoK
ICAgICBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNh
bXBsZVJhdGUpOwogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKTsKIAot
ICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDlkYWE3
ZDAxNDFkODEwNGU0ZjVjNGMyNjQ4YmM4YzZiZTUyNmMwYzguLjVhMTJjZGU0ZmNkZmM1N2ZhZDQy
YjdkOWU4ZmU3MzIwNDM1MDlkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDUsOCArNDUs
OSBAQCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAKIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
On5Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKCkgPSBkZWZhdWx0OwogCi12b2lkIE1vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KCkKK3ZvaWQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpCiB7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShk
aXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKFNlY29u
ZHMgeyBtX251bWJlck9mRnJhbWVzVG9Qcm9jZXNzIC8gc2FtcGxlUmF0ZSgpIH0pOwogICAgIHNl
dElzUGxheWluZyh0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKaW5kZXggZDRlYWU4MzM0MzVjMGE2
MDQ1NWVkMGI5NjkyNTY4YzhlYzYzZjM2ZC4uYThkMjhjNGVkMWJiZWZmZDMzMDk0NTBkYWFmMzI5
ZWJhMjUzNGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTM4LDEyICszOCwxNiBAQCBjbGFzcyBB
dWRpb0lPQ2FsbGJhY2s7CiBjbGFzcyBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hIGZpbmFsIDog
cHVibGljIEF1ZGlvRGVzdGluYXRpb25Db2NvYSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkgeyBy
ZXR1cm4gbWFrZVVuaXF1ZTxNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgc2Ft
cGxlUmF0ZSk7IH0KKyAgICBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywg
c2FtcGxlUmF0ZSkpOworICAgIH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIE1vY2tBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCiBwcml2
YXRlOgotICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7
CiAKICAgICB2b2lkIHRpY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAKaW5kZXggYjJmMzMxMmNmNGIwNDYxYjg3ZmFhYWMzOWNkNDJhMDYzZTU4YWM3
My4uMWZlOTM5ODdlZjk2MWZkZmJlMzhmNDdjYTY3MWFmNWZkYTk4ZDlkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU0NCw0ICs1NDQsOSBA
QCBSZWZlcnJlclBvbGljeSBXb3JrZXJHbG9iYWxTY29wZTo6cmVmZXJyZXJQb2xpY3koKSBjb25z
dAogICAgIHJldHVybiBtX3JlZmVycmVyUG9saWN5OwogfQogCitUaHJlYWQqIFdvcmtlckdsb2Jh
bFNjb3BlOjp1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aHJlYWQu
dGhyZWFkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBiZDljZjE0MGRkNTJmYjg0OThiOWZhNDEw
NjBjOTNhYmZhNjgzODVlLi45MGRmM2I2YWYzZDYzZWM2MWFlYzlhMTIzYzA4NzdlNzllMzRiMjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNs
dWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKQEAgLTU5LDcgKzYwLDcgQEAgbmFtZXNwYWNlIElE
QkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CiB9CiAKLWNsYXNzIFdvcmtlckds
b2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMg
U3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRV
dGlsaXRpZXMgeworY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29w
ZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0
aWVzLCBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoV29ya2VyR2xvYmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldv
cmtlckdsb2JhbFNjb3BlKCk7CkBAIC04NSwxMyArODYsMTUgQEAgcHVibGljOgogICAgIFdvcmtl
clNXQ2xpZW50Q29ubmVjdGlvbiYgc3dDbGllbnRDb25uZWN0aW9uKCk7CiAjZW5kaWYKIAotICAg
IFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgp
OyB9CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4g
bV9zY3JpcHQuZ2V0KCk7IH0KICAgICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdCA9IG51
bGxwdHI7IH0KIAogICAgIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRy
b2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0b3JDb250cm9sbGVyOyB9CiAKICAgICBX
b3JrZXJUaHJlYWQmIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkOyB9CiAKKyAgICBU
aHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKwogICAgIHVzaW5nIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6Omhhc1BlbmRpbmdBY3Rpdml0eTsKIAogICAgIHZvaWQgcG9zdFRh
c2soVGFzayYmKSBmaW5hbDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVh
ZCBhc3luY2hyb25vdXNseS4KQEAgLTExOSw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
UmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgYm9v
bCBpc0Nsb3NpbmcoKSB7IHJldHVybiBtX2Nsb3Npbmc7IH0KKyAgICBib29sIGlzQ2xvc2luZygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2xvc2luZzsgfQogCiAgICAgdm9pZCBhZGRDb25zb2xl
TWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJikgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTQ4ZTA4NDhiZTM1MjJiNmFkOWMzMjg1MzM5NzQ2Yzdj
Mzk3NDI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGhyZWFkOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVi
bGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBXVEY6OlRo
cmVhZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXND
bG9zaW5nKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlciogc2NyaXB0KCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjliZjgzZTkzMGRkMTY1ZDhhMzMwNDcwNTJhZDU1ZDIy
ZmFmYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyKCkgPSBkZWZhdWx0Owor
CisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRUaW1l
clNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNh
bGxiYWNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spID0gMDsKKwor
ICAgIHZpcnR1YWwgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgPSAwOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5jcHAKaW5kZXggNjZlY2Q1MzZmODEzZDAyOWM0OTdmMWFlYTdmMjE5ZWRmYzc1YjM3NS4u
YmI2MWZjNWYyYTk3ZGI4NGIxMTNiZTIyM2M3YTdhZGM3MTliNDk0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAi
VGhyZWFkR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUg
IldvcmtlclJ1bkxvb3AuaCIKLSNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFk
LmgiCiAKICNpZiBVU0UoR0xJQikKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIElz
Rm9yRGVidWdnaW5nIG1faXNGb3JEZWJ1Z2dpbmcgeyBJc0ZvckRlYnVnZ2luZzo6Tm8gfTsKIH07
CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQor
dm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRl
eHQpCiB7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9y
RGVidWdnaW5nOjpObyk7CiAgICAgTW9kZVByZWRpY2F0ZSBtb2RlUHJlZGljYXRlKGRlZmF1bHRN
b2RlKCkpOwpAQCAtMTQzLDEzICsxNDMsMTMgQEAgdm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29y
a2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCiAgICAgcnVuQ2xlYW51cFRhc2tzKGNvbnRleHQpOwog
fQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluRGVidWdnZXJN
b2RlKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBX
b3JrZXJSdW5Mb29wOjpydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSYgY29udGV4dCkKIHsKICAgICBSdW5Mb29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1
cDo6SXNGb3JEZWJ1Z2dpbmc6Olllcyk7CiAgICAgcmV0dXJuIHJ1bkluTW9kZSgmY29udGV4dCwg
TW9kZVByZWRpY2F0ZSB7IGRlYnVnZ2VyTW9kZSgpIH0sIFdhaXRGb3JNZXNzYWdlKTsKIH0KIAot
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xv
YmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUp
CitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9k
ZSB3YWl0TW9kZSkKIHsKICAgICBBU1NFUlQobW9kZSAhPSBkZWJ1Z2dlck1vZGUoKSk7CiAgICAg
UnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpO
byk7CkBAIC0xNTgsMTAgKzE1OCwxMCBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1
bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6
cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRl
JiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBX
b3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRl
eHQsIGNvbnN0IE1vZGVQcmVkaWNhdGUmIHByZWRpY2F0ZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7
CiAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQoKS50aHJl
YWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51bmRlcmx5
aW5nVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKIAogICAgIEpTQzo6SlNSdW5Mb29w
VGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgdGltZXJBZGRlZFRhc2sgPSBXVEY6OmNy
ZWF0ZVNoYXJlZFRhc2s8SlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25UeXBl
PihbdGhpc10gewogICAgICAgICAvLyBXZSBkb24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBoZXJl
LCB3ZSBqdXN0IHdhbnQgdG8gbG9vcCBhcm91bmQgcnVuSW5Nb2RlCkBAIC0xODYsMTMgKzE4Niwx
MyBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3Jr
ZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwogICAgIGlmICh3YWl0TW9kZSA9PSBXYWl0Rm9y
TWVzc2FnZSAmJiBwcmVkaWNhdGUuaXNEZWZhdWx0TW9kZSgpICYmIG1fc2hhcmVkVGltZXItPmlz
QWN0aXZlKCkpCiAgICAgICAgIHRpbWVvdXREZWxheSA9IHN0ZDo6bWluKHRpbWVvdXREZWxheSwg
bV9zaGFyZWRUaW1lci0+ZmlyZVRpbWVEZWxheSgpKTsKIAotICAgIGlmIChXb3JrZXJTY3JpcHRD
b250cm9sbGVyKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBz
Y3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgewogICAgICAgICBzY3JpcHQtPnJlbGVhc2VIZWFw
QWNjZXNzKCk7CiAgICAgICAgIHNjcmlwdC0+YWRkVGltZXJTZXROb3RpZmljYXRpb24odGltZXJB
ZGRlZFRhc2spOwogICAgIH0KICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdDsKICAg
ICBhdXRvIHRhc2sgPSBtX21lc3NhZ2VRdWV1ZS53YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRp
bWVvdXQocmVzdWx0LCBwcmVkaWNhdGUsIHRpbWVvdXREZWxheSk7Ci0gICAgaWYgKFdvcmtlclNj
cmlwdENvbnRyb2xsZXIqIHNjcmlwdCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1
dG8qIHNjcmlwdCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CiAgICAgICAgIHNjcmlwdC0+YWNxdWly
ZUhlYXBBY2Nlc3MoKTsKICAgICAgICAgc2NyaXB0LT5yZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bih0aW1lckFkZGVkVGFzayk7CiAgICAgfQpAQCAtMjIzLDEwICsyMjMsMTAgQEAgTWVzc2FnZVF1
ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUq
IGNvbnRleHQsIGNvbnMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFdvcmtlclJ1bkxv
b3A6OnJ1bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29y
a2VyUnVuTG9vcDo6cnVuQ2xlYW51cFRhc2tzKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBj
b250ZXh0KQogewogICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhy
ZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4
dC0+dW5kZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAgICAgQVNTRVJU
KG1fbWVzc2FnZVF1ZXVlLmtpbGxlZCgpKTsKIAogICAgIHdoaWxlICh0cnVlKSB7CkBAIC0yNjIs
NyArMjYyLDcgQEAgdm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0RGVidWdnZXJUYXNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogICAgIHBvc3RUYXNrRm9yTW9kZShXVEZNb3Zl
KHRhc2spLCBkZWJ1Z2dlck1vZGUoKSk7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6
cGVyZm9ybVRhc2soV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxv
b3A6OlRhc2s6OnBlcmZvcm1UYXNrKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0
KQogewogICAgIGlmICgoIWNvbnRleHQtPmlzQ2xvc2luZygpICYmIGNvbnRleHQtPnNjcmlwdCgp
ICYmICFjb250ZXh0LT5zY3JpcHQoKS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB8fCBtX3Rh
c2suaXNDbGVhbnVwVGFzaygpKQogICAgICAgICBtX3Rhc2sucGVyZm9ybVRhc2soKmNvbnRleHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAppbmRleCBhOGM5ZGViZDgwZDgw
OTk1NGE3YTlkNjkwZjc3NDA2ZDI1MjgyNjY4Li5lZTI2YjM3ZjI5OWNhNjk5YzA0YzBiMWM3NDQx
NTA0ODA4NzE1N2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1
bkxvb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaApAQCAt
MzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgTW9kZVByZWRp
Y2F0ZTsKLSAgICBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKKyAgICBjbGFzcyBXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZTsKICAgICBjbGFzcyBXb3JrZXJTaGFyZWRUaW1lcjsKIAogICAgIGNs
YXNzIFdvcmtlclJ1bkxvb3AgewpAQCAtNDcsMTMgKzQ3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgfldvcmtlclJ1bkxvb3AoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEJsb2Nr
aW5nIGNhbGwuIFdhaXRzIGZvciB0YXNrcyBhbmQgdGltZXJzLCBpbnZva2VzIHRoZSBjYWxsYmFj
a3MuCi0gICAgICAgIHZvaWQgcnVuKFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgIHZvaWQg
cnVuKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7CiAKICAgICAgICAgZW51bSBXYWl0TW9k
ZSB7IFdhaXRGb3JNZXNzYWdlLCBEb250V2FpdEZvck1lc3NhZ2UgfTsKIAogICAgICAgICAvLyBX
YWl0cyBmb3IgYSBzaW5nbGUgdGFzayBhbmQgcmV0dXJucy4KLSAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcmIG1v
ZGUsIFdhaXRNb2RlID0gV2FpdEZvck1lc3NhZ2UpOwotICAgICAgICBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IHJ1bkluRGVidWdnZXJNb2RlKFdvcmtlckdsb2JhbFNjb3BlJik7CisgICAgICAgIE1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KiwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKKyAgICAg
ICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSYpOwogCiAgICAgICAgIHZvaWQgdGVybWluYXRlKCk7CiAgICAgICAgIGJv
b2wgdGVybWluYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZVF1ZXVlLmtpbGxlZCgpOyB9
CkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogCiAgICAgICAgIHByaXZh
dGU6Ci0gICAgICAgICAgICB2b2lkIHBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKik7Cisg
ICAgICAgICAgICB2b2lkIHBlcmZvcm1UYXNrKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7
CiAKICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgbV90YXNrOwogICAg
ICAgICAgICAgU3RyaW5nIG1fbW9kZTsKQEAgLTgzLDExICs4MywxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcFNldHVw
OwotICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJHbG9iYWxT
Y29wZSosIGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0TW9kZSk7CisgICAgICAgIE1lc3NhZ2VR
dWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiwgY29u
c3QgTW9kZVByZWRpY2F0ZSYsIFdhaXRNb2RlKTsKIAogICAgICAgICAvLyBSdW5zIGFueSBjbGVh
biB1cCB0YXNrcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdGhlIHF1ZXVlIGFuZCByZXR1cm5zLgog
ICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBjb250ZXh0IGlz
IGNsb3NlZCBvciBsb29wIGhhcyBiZWVuIHRlcm1pbmF0ZWQuCi0gICAgICAgIHZvaWQgcnVuQ2xl
YW51cFRhc2tzKFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgIHZvaWQgcnVuQ2xlYW51cFRh
c2tzKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7CiAKICAgICAgICAgYm9vbCBpc0JlaW5n
RGVidWdnZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnQ291bnQgPj0gMTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXQuY3BwCmluZGV4IDNkNmUwYjdhZjAxZTIxODVlMWM5ZmY5ZGIwN2Zm
ZDMwZWRkZDIxNzguLjM5MDhiZGYzYTI5NmM4MWI2ZjRiYThlOGUwOGUzZmM1ODJlZTVlM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwCkBAIC0yOCwyNyArMjgsNzYgQEAKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgotI2luY2x1
ZGUgIldvcmtsZXRPcHRpb25zLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNs
dWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCisj
aW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVu
ZGluZ1Rhc2tzLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2xldCk7CiAKLVJlZjxXb3JrbGV0PiBXb3JrbGV0
OjpjcmVhdGUoKQorV29ya2xldDo6V29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoJmRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtsZXQoKSk7CiB9CiAKLVdvcmtsZXQ6OldvcmtsZXQoKQorV29ya2xldDo6fldvcmtsZXQoKSA9
IGRlZmF1bHQ7CisKK0RvY3VtZW50KiBXb3JrbGV0Ojpkb2N1bWVudCgpCit7CisgICAgcmV0dXJu
IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCisvLyBo
dHRwczovL3d3dy53My5vcmcvVFIvd29ya2xldHMtMS8jZG9tLXdvcmtsZXQtYWRkbW9kdWxlCit2
b2lkIFdvcmtsZXQ6OmFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTFN0cmluZywgV29y
a2xldE9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNl
KQoreworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIFVSTCBtb2R1bGVVUkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwobW9kdWxl
VVJMU3RyaW5nKTsKKyAgICBpZiAoIW1vZHVsZVVSTC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJNb2R1bGUgVVJMIGlzIGludmFs
aWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9wcm94aWVzLmlz
RW1wdHkoKSkKKyAgICAgICAgbV9wcm94aWVzLmFwcGVuZFZlY3RvcihjcmVhdGVHbG9iYWxTY29w
ZXMoKSk7CisKKyAgICBhdXRvIHBlbmRpbmdUYXNrcyA9IFdvcmtsZXRQZW5kaW5nVGFza3M6OmNy
ZWF0ZSgqdGhpcywgV1RGTW92ZShwcm9taXNlKSwgbV9wcm94aWVzLnNpemUoKSk7CisgICAgbV9w
ZW5kaW5nVGFza3NTZXQuYWRkKHBlbmRpbmdUYXNrcy5jb3B5UmVmKCkpOworCisgICAgZm9yIChh
dXRvJiBwcm94eSA6IG1fcHJveGllcykgeworICAgICAgICBwcm94eS0+cG9zdFRhc2tGb3JNb2Rl
VG9Xb3JrbGV0R2xvYmFsU2NvcGUoW3BlbmRpbmdUYXNrcyA9IHBlbmRpbmdUYXNrcy5jb3B5UmVm
KCksIG1vZHVsZVVSTCA9IG1vZHVsZVVSTC5pc29sYXRlZENvcHkoKSwgY3JlZGVudGlhbHMgPSBv
cHRpb25zLmNyZWRlbnRpYWxzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5
KCp0aGlzKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBkb3duY2FzdDxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmZldGNoQW5kSW52
b2tlU2NyaXB0KG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFtwZW5kaW5nVGFza3MgPSBXVEZNb3Zl
KHBlbmRpbmdUYXNrcyksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5
KV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFz
a3MpLCBleGNlcHRpb24gPSBjcm9zc1RocmVhZENvcHkoZXhjZXB0aW9uKSwgcGVuZGluZ0FjdGl2
aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1Rh
c2tzLT5hYm9ydChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1Rhc2tzLT5kZWNyZW1lbnRDb3VudGVy
KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgfQorfQorCit2b2lkIFdvcmtsZXQ6OmZp
bmlzaFBlbmRpbmdUYXNrcyhXb3JrbGV0UGVuZGluZ1Rhc2tzJiB0YXNrcykKIHsKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX3BlbmRpbmdUYXNrc1NldC5jb250YWlu
cygmdGFza3MpKTsKKworICAgIG1fcGVuZGluZ1Rhc2tzU2V0LnJlbW92ZSgmdGFza3MpOwogfQog
Ci12b2lkIFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxl
VVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNl
KQorY29uc3QgY2hhciogV29ya2xldDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB7Ci0g
ICAgLy8gRklYTUU6IEFkZCBwcm9wZXIgaW1wbGVtZW50YXRpb24uCi0gICAgVU5VU0VEX1BBUkFN
KG1vZHVsZVVSTCk7Ci0gICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgcmV0dXJuICJXb3JrbGV0
IjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5o
CmluZGV4IGIyYmVkYzY1ODY1Yjc0ZjVmOTk1NmYwNGNmY2NjM2Y4MzUxOWYyZTEuLjQxNjg2NzRj
NzNiMjk5MDliYTYyOTYyNTcyMWIzODA1M2UyMjdiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0LmgKQEAgLTI1LDI3ICsyNSw0NSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgIldvcmtsZXRPcHRp
b25zLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eTsKK2NsYXNzIFdv
cmtsZXRQZW5kaW5nVGFza3M7CiAKLXN0cnVjdCBXb3JrbGV0T3B0aW9uczsKLQotY2xhc3MgV29y
a2xldCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxl
IHsKK2NsYXNzIFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNj
cmlwdFdyYXBwYWJsZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdvcmtsZXQ+LCBwdWJsaWMgQWN0
aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXQpOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8V29ya2xldD4gY3JlYXRlKCk7Ci0gICAgdmlydHVhbCB+V29y
a2xldCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5Xb3JrbGV0KCk7CiAgICAgCi0gICAgdmly
dHVhbCB2b2lkIGFkZE1vZHVsZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBX
b3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdmlydHVh
bCB2b2lkIGFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMm
JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworCisgICAgdm9pZCBmaW5pc2hQZW5kaW5n
VGFza3MoV29ya2xldFBlbmRpbmdUYXNrcyYpOworICAgIERvY3VtZW50KiBkb2N1bWVudCgpOwor
CisgICAgY29uc3QgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+JiBwcm94aWVz
KCkgY29uc3QgeyByZXR1cm4gbV9wcm94aWVzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBXb3JrbGV0
KCk7CisgICAgZXhwbGljaXQgV29ya2xldChEb2N1bWVudCYpOworCitwcml2YXRlOgorICAgIHZp
cnR1YWwgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNj
b3BlcygpID0gMDsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisKKyAgICBWZWN0b3I8UmVmPFdvcmts
ZXRHbG9iYWxTY29wZVByb3h5Pj4gbV9wcm94aWVzOworICAgIEhhc2hTZXQ8UmVmUHRyPFdvcmts
ZXRQZW5kaW5nVGFza3M+PiBtX3BlbmRpbmdUYXNrc1NldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRs
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKaW5kZXggMGI3NzRjMjc0YWFm
MjBlMGNjODgzNzcyNzFjNzE2YTAwZmFmOWU2MS4uMjkzY2YwNmUxNTU2ZTliNTc3YTJhNGQxOTU4
OGQxNjgwNmFiZWU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKQEAgLTI0LDgg
KzI0LDEwIEBACiAqLwogCiBbCisgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIEV4cG9zZWQ9V2lu
ZG93LAorICAgIEdsb2JhbD1Xb3JrbGV0LAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uCiBdIGlu
dGVyZmFjZSBXb3JrbGV0IHsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIFByb21pc2U8dW5kZWZp
bmVkPiBhZGRNb2R1bGUoVVNWU3RyaW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlv
bnMgb3B0aW9ucyk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGFkZE1vZHVsZShVU1ZTdHJpbmcg
bW9kdWxlVVJMLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9ucyBvcHRpb25zKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCAzYjc1ODJh
ZmZjZDA0YjE0NjI5MGYzYTc0Njg2NzM0YWM2OTBmZWYyLi5mYjhiYWE1ZGVmYzllODc1M2YwYzQy
ZWVjZmY5YjY0ZWUzMjM0MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJ
TkdfQVBJKQotCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgpAQCAtMzYsNyAr
MzQsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luUG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKLSNpbmNsdWRlICJXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgpAQCAtNDcsMTAgKzQ0LDIyIEBAIHVzaW5nIG5hbWVz
cGFjZSBJbnNwZWN0b3I7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrbGV0R2xv
YmFsU2NvcGUpOwogCitXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShjb25z
dCBVUkwmIHdpbmRvd1VSTCkKKyAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2xldFNjcmlw
dENvbnRyb2xsZXI+KHRoaXMpKQorICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwod2luZG93VVJMKQoreworICAgIGF1dG8gYWRkUmVz
dWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKKyAgICBBU1NFUlRf
VU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0KTsKKworICAgIHNldFNlY3VyaXR5T3JpZ2luUG9s
aWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7
Cit9CisKIFdvcmtsZXRHbG9iYWxTY29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiBk
b2N1bWVudCwgUmVmPEpTQzo6Vk0+JiYgdm0sIFNjcmlwdFNvdXJjZUNvZGUmJiBjb2RlKQogICAg
IDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCiAgICAgLCBtX3NjcmlwdChtYWtl
VW5pcXVlPFdvcmtsZXRTY3JpcHRDb250cm9sbGVyPihXVEZNb3ZlKHZtKSwgdGhpcykpCiAgICAg
LCBtX3RvcE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3Vy
bChjb2RlLnVybCgpKQogICAgICwgbV9jb2RlKFdURk1vdmUoY29kZSkpCiB7CiAgICAgYXV0byBh
ZGRSZXN1bHQgPSBhbGxXb3JrbGV0R2xvYmFsU2NvcGVzU2V0KCkuYWRkKHRoaXMpOwpAQCAtNjEs
NyArNzAsNyBAQCBXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVu
dCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBTYwogICAgIEFTU0VSVChkb2N1bWVudC5w
YWdlKCkpOwogCiAgICAgc2V0U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xp
Y3k6OmNyZWF0ZShtX3RvcE9yaWdpbi5jb3B5UmVmKCkpKTsKLSAgICBzZXRDb250ZW50U2VjdXJp
dHlQb2xpY3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IG1fY29kZS51
cmwoKSB9LCAqdGhpcykpOworICAgIHNldENvbnRlbnRTZWN1cml0eVBvbGljeShtYWtlVW5pcXVl
PENvbnRlbnRTZWN1cml0eVBvbGljeT4oVVJMIHsgdGhpcy0+dXJsKCkgfSwgKnRoaXMpKTsKIH0K
IAogV29ya2xldEdsb2JhbFNjb3BlOjp+V29ya2xldEdsb2JhbFNjb3BlKCkKQEAgLTExMyw3ICsx
MjIsOCBAQCBTdHJpbmcgV29ya2xldEdsb2JhbFNjb3BlOjp1c2VyQWdlbnQoY29uc3QgVVJMJiB1
cmwpIGNvbnN0CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSgpCiB7Ci0gICAg
bV9zY3JpcHQtPmV2YWx1YXRlKG1fY29kZSk7CisgICAgaWYgKG1fY29kZSkKKyAgICAgICAgbV9z
Y3JpcHQtPmV2YWx1YXRlKCptX2NvZGUpOwogfQogCiBib29sIFdvcmtsZXRHbG9iYWxTY29wZTo6
aXNKU0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0CkBAIC0xMzUsNyArMTQ1LDcgQEAgVVJMIFdv
cmtsZXRHbG9iYWxTY29wZTo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwsIEZvcmNlVVRG
OCkgY29uc3QKIHsKICAgICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7
Ci0gICAgcmV0dXJuIFVSTChtX2NvZGUudXJsKCksIHVybCk7CisgICAgcmV0dXJuIFVSTCh0aGlz
LT51cmwoKSwgdXJsKTsKIH0KIAogdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmxvZ0V4Y2VwdGlv
blRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiYmIHN0YWNrKQpAQCAtMTcxLDUgKzE4MSwxMSBAQCBSZWZlcnJlclBvbGljeSBXb3Jr
bGV0R2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4gUmVmZXJy
ZXJQb2xpY3k6Ok5vUmVmZXJyZXI7CiB9CiAKK3ZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpmZXRj
aEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIC8vIEZJWE1FOiBB
ZGQgaW1wbGVtZW50YXRpb24uCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDI1ZDU0OWFjNGEwYWE2ZmY3NTI4NzU1
ZDcwNDdjODE0ZWU3ZGM0MDQuLjk4MTQxNTlkZTJiNTAzYTgwOGM4MDg3MDQyZjY3MzUzNjdiZmYz
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29w
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCkBA
IC0yNiwzMCArMjYsMzIgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5U
SU5HX0FQSSkKLQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRl
bnRpYWxzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKKyNpbmNs
dWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2Uu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KLSNpbmNsdWRlIDx3
dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNs
dWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7CiBjbGFzcyBXb3JrZXJFdmVudExv
b3A7Ci1jbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjsKIAogZW51bSBXb3JrbGV0R2xvYmFs
U2NvcGVJZGVudGlmaWVyVHlwZSB7IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47
CiAKLWNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRH
bG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMg
UmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSwgcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKFdvcmtsZXRHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V29ya2xldEdsb2JhbFNjb3BlKCk7CkBAIC01NywxMSArNTksMTYgQEAgcHVibGljOgogICAg
IHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZXNTZXQgPSBIYXNoU2V0PGNvbnN0IFdvcmtsZXRHbG9i
YWxTY29wZSo+OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBXb3JrbGV0R2xvYmFsU2NvcGVz
U2V0JiBhbGxXb3JrbGV0R2xvYmFsU2NvcGVzU2V0KCk7CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5U
SU5HX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAg
IHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyNlbmRpZgogCiAgICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExvb3AoKSBm
aW5hbDsKIAotICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2Rl
LnVybCgpOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Vy
bDsgfQogCiAgICAgdm9pZCBldmFsdWF0ZSgpOwogCkBAIC03MCw3ICs3Nyw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7
CiAKLSAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3Jp
cHQuZ2V0KCk7IH0KKyAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwg
eyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
c3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCkBA
IC03OSw2ICs4NiwxMCBAQCBwdWJsaWM6CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJv
dmlkZXIoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAKKyAgICAvLyBXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZS4KKyAgICBUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2lzQ2xvc2luZzsgfQorCiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBpc1NlY3VyZUNvbnRleHQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCkBAIC04Niw3ICs5NywxMCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRlc3RydWN0aW9uKCk7CiAKKyAgICB2b2lk
IGZldGNoQW5kSW52b2tlU2NyaXB0KGNvbnN0IFVSTCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBw
cm90ZWN0ZWQ6CisgICAgV29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgd2luZG93VVJMKTsK
ICAgICBXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmLCBSZWY8SlNDOjpWTT4mJiwgU2NyaXB0
U291cmNlQ29kZSYmKTsKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgV29ya2xldEdsb2Jh
bFNjb3BlJikgPSBkZWxldGU7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKFdvcmtsZXRHbG9iYWxT
Y29wZSYmKSA9IGRlbGV0ZTsKQEAgLTEzNiw4ICsxNTAsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8V29ya2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZl
bnRMb29wVGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3JvdXA7CiAKKyAgICBVUkwgbV91cmw7CiAg
ICAgSlNDOjpSdW50aW1lRmxhZ3MgbV9qc1J1bnRpbWVGbGFnczsKLSAgICBTY3JpcHRTb3VyY2VD
b2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxTY3JpcHRTb3VyY2VDb2RlPiBtX2NvZGU7CisgICAg
Ym9vbCBtX2lzQ2xvc2luZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkBAIC0xNDUsNCArMTYxLDMgQEAgcHJpdmF0ZToKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlKQogc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRl
eHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmlkbAppbmRleCBkNzU5ZjBjZTFkMTZmODY5MTg2MDEyNzc2ZjBkYjE2YjYxYmFhNDc4Li5iZjA3
MTM4NGEzZjMwOGZmNmM2NDVjOTU4NGNiM2IxY2I5ZTVlMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAgLTI2LDggKzI2LDYgQEAKIFsK
ICAgICBDdXN0b21Qcm94eVRvSlNPYmplY3QsCiAgICAgRXhwb3NlZD1Xb3JrbGV0LAotICAgIEVu
YWJsZWRBdFJ1bnRpbWU9Q1NTUGFpbnRpbmdBUEksCi0gICAgQ29uZGl0aW9uYWw9Q1NTX1BBSU5U
SU5HX0FQSSwKICAgICBKU0xlZ2FjeVBhcmVudD1KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UsCiAg
ICAgSW1wbGljaXRUaGlzLAogICAgIElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWFjNWQ5MWNjN2QwMjQyMGI1ZmFmZjIxOTFjMGVlZjhmZjlhNWQ3ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29w
ZVByb3h5LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0
Q3JlZGVudGlhbHMuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOwor
CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4geworcHVibGljOgorICAgIHZpcnR1YWwgfldv
cmtsZXRHbG9iYWxTY29wZVByb3h5KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBib29sIHBv
c3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVu
ZGluZ1Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJmZmU1ZDc2MWFmNDZmMjYxNDExNzkwNGFjMTA0YzMwNDkxMTQ1
ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVu
ZGluZ1Rhc2tzLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldvcmts
ZXRQZW5kaW5nVGFza3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrbGV0UGVuZGlu
Z1Rhc2tzOjpXb3JrbGV0UGVuZGluZ1Rhc2tzKFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQorICAgIDogbV93b3JrbGV0KG1h
a2VXZWFrUHRyKHdvcmtsZXQpKQorICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCisg
ICAgLCBtX2NvdW50ZXIoY291bnRlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
fQorCit2b2lkIFdvcmtsZXRQZW5kaW5nVGFza3M6OmFib3J0KEV4Y2VwdGlvbiYmIGV4Y2VwdGlv
bikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9
PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb3VudGVyID0gLTE7CisgICAgbV9wcm9t
aXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgIGlmIChtX3dvcmtsZXQpCisgICAg
ICAgIG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tzKCp0aGlzKTsKK30KKwordm9pZCBXb3Jr
bGV0UGVuZGluZ1Rhc2tzOjpkZWNyZW1lbnRDb3VudGVyKCkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9PSAtMSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLS1tX2NvdW50ZXI7CisgICAgaWYgKCFtX2NvdW50ZXIpIHsKKyAgICAgICAgbV9wcm9t
aXNlLnJlc29sdmUoKTsKKyAgICAgICAgaWYgKG1fd29ya2xldCkKKyAgICAgICAgICAgIG1fd29y
a2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tzKCp0aGlzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQ
ZW5kaW5nVGFza3MuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MzNkNmJiYWJlMGU5YjkzZTI4M2EzMjg2NzE1Y2E4OWRjMjZjMDlj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRp
bmdUYXNrcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXQ7CisKKy8vIGh0
dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jcGVuZGluZy10YXNrcy1zdHJ1
Y3QKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3MgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8V29ya2xldFBlbmRpbmdUYXNrcz4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2xl
dFBlbmRpbmdUYXNrcz4gY3JlYXRlKFdvcmtsZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV29ya2xldFBlbmRpbmdUYXNrcyh3b3JrbGV0LCBXVEZNb3ZlKHByb21pc2Up
LCBjb3VudGVyKSk7CisgICAgfQorCisgICAgdm9pZCBhYm9ydChFeGNlcHRpb24mJik7CisgICAg
dm9pZCBkZWNyZW1lbnRDb3VudGVyKCk7CisKK3ByaXZhdGU6CisgICAgV29ya2xldFBlbmRpbmdU
YXNrcyhXb3JrbGV0JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYsIGludCBjb3VudGVyKTsK
KworICAgIFdlYWtQdHI8V29ya2xldD4gbV93b3JrbGV0OworICAgIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiBtX3Byb21pc2U7CisgICAgaW50IG1fY291bnRlcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcAppbmRleCAyMGE2Zjg1NjE4NThhZGZiZTJlMmJjMThlYmY3MTUwYjk3
YWQxNGY4Li4xN2RmNWUxZjNjZjA2NTcxNGJjZWY3NWVkODVmY2FkNTM4ZjZlODBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3Bw
CkBAIC0yNiw4ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCisj
aW5jbHVkZSAiSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0
ZS5oIgpAQCAtNTYsNiArNTUsMTEgQEAgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKFJlZjxWTT4mJiB2bSwgV29ya2xldEdsb2JhbFNjb3AKICAgICBKU1ZN
Q2xpZW50RGF0YTo6aW5pdE5vcm1hbFdvcmxkKG1fdm0uZ2V0KCkpOwogfQogCitXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENvbnRyb2xsZXIoV29ya2xldEdsb2JhbFNjb3Bl
KiB3b3JrbGV0R2xvYmFsU2NvcGUpCisgICAgOiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihWTTo6
Y3JlYXRlKCksIHdvcmtsZXRHbG9iYWxTY29wZSkKK3sKK30KKwogV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6On5Xb3JrbGV0U2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CkBAIC0xNDUsMTAgKzE0OSwxOSBAQCB2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KCkKICAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKICAgICAg
ICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgaWYgKGlzPFBh
aW50V29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsKICAgICAgICAg
aW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlUHJvdG90eXBl
LCBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLCBQYWludFdvcmtsZXRHbG9iYWxTY29wZT4oKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KyAgICBpZiAoaXM8QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3Bl
KSkgeworICAgICAgICBpbml0U2NyaXB0V2l0aFN1YmNsYXNzPEpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVQcm90b3R5cGUsIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUsIEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlPigpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTE5Niw1ICsyMDksNjIgQEAgdm9pZCBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6c2V0RXhjZXB0aW9uKEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24pCiAg
ICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7
CiB9CiAKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnJlbGVhc2VIZWFwQWNjZXNzKCkK
K3sKKyAgICBtX3ZtLT5oZWFwLnJlbGVhc2VBY2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MoKQoreworICAgIG1fdm0tPmhlYXAuYWNx
dWlyZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjphZGRUaW1l
clNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNh
bGxiYWNrIGNhbGxiYWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxv
b3BUaW1lciogdGltZXIpIHsKKyAgICAgICAgaWYgKCF0aW1lcikKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgdGltZXItPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAg
ICB9OworCisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2so
KSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7
CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmRlZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwor
dm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24o
SlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaykK
K3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7
CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRpbWVy
LT5yZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsKKworICAgIHBy
b2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nl
c3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NU
aW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQgV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24oKQoreworICAgIGlm
IChtX2lzVGVybWluYXRpbmdFeGVjdXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHsKKyAg
ICAgICAgLy8gVGhlIG11dGV4IHByb3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRo
YXQgb25jZQorICAgICAgICAvLyB0ZXJtaW5hdGlvbiBpcyBzY2hlZHVsZWQsIGlzVGVybWluYXRp
bmdFeGVjdXRpb24oKSB3aWxsCisgICAgICAgIC8vIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGF0IGxl
eGljYWxHbG9iYWxPYmplY3Qgd2hlbiBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7Cisg
ICAgICAgIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiA9IHRydWU7CisgICAgfQorICAgIG1fdm0t
Pm5vdGlmeU5lZWRUZXJtaW5hdGlvbigpOworfQorCitib29sIFdvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTZWUgY29tbWVu
dHMgaW4gc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbiByZWdhcmRpbmcgbXV0ZXggdXNhZ2Uu
CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7
CisgICAgcmV0dXJuIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbjsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBlMzZkMmEyNDJiZjU0NjRmYTI3Y2YzZGE5YWI1Mjg0
ZjAwMDRkNmVlLi42ZDQzY2U1ZjlmZmQyYTcwYWYwYmY2ZTVhZWU1NGNkOGZhYzcyZjJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgK
QEAgLTI1LDggKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5U
SU5HX0FQSSkKLQorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25n
Lmg+CkBAIC00Niw5ICs0NSwxMSBAQCBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIGNsYXNz
IFdvcmtsZXRHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50OwogCi1jbGFz
cyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CisvLyBGSVhNRTogV2Ugc2hvdWxkIHNoYXJlIG1v
cmUgY29kZSB3aXRoIFdvcmtlclNjcmlwdENvbnRyb2xsZXIuCitjbGFzcyBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlciA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIGV4cGxpY2l0IFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAgIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
KFJlZjxKU0M6OlZNPiYmLCBXb3JrbGV0R2xvYmFsU2NvcGUqKTsKICAgICB+V29ya2xldFNjcmlw
dENvbnRyb2xsZXIoKTsKIApAQCAtNjQsNiArNjUsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZGlz
YWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlzYWJsZVdl
YkFzc2VtYmx5KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAorICAgIHZvaWQgcmVsZWFz
ZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7
CisKKyAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6
OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVGltZXJT
ZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxs
YmFjaykgZmluYWw7CisKKyAgICB2b2lkIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24oKTsK
KyAgICBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdCBmaW5hbDsKKwogICAgIHZv
aWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJuZWRFeGNl
cHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbiwg
U3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIApAQCAtODcsNyAr
OTcsOCBAQCBwcml2YXRlOgogICAgIFdvcmtsZXRHbG9iYWxTY29wZSogbV93b3JrbGV0R2xvYmFs
U2NvcGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtsZXRDb25zb2xlQ2xpZW50PiBtX2NvbnNv
bGVDbGllbnQ7CiAgICAgSlNDOjpTdHJvbmc8SlNXb3JrbGV0R2xvYmFsU2NvcGU+IG1fd29ya2xl
dEdsb2JhbFNjb3BlV3JhcHBlcjsKKyAgICBtdXRhYmxlIExvY2sgbV9zY2hlZHVsZWRUZXJtaW5h
dGlvbkxvY2s7CisgICAgYm9vbCBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24geyBmYWxzZSB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLmNwcAppbmRleCA2YTEwMWMzOTU5M2NjNGMxNTRjNzQ1ZjZkNzk3MzdhMDJhOTIzZjZk
Li4wYjlhYjFkY2UzNGE1MjBkODJlMmZhZDVmNWQwNmE4NjllZjc0ZDk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICBz
dG9wKCk7CiAgICAgfQogCi0gICAgdm9pZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQo
KTsgfQorICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KHsgfSk7IH0KICAg
ICB2b2lkIHN0b3AoKSB7IG1fZGVzdGluYXRpb24tPnN0b3AoKTsgfQogICAgIGJvb2wgaXNQbGF5
aW5nKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KICAgICB1bnNpZ25l
ZCBmcmFtZXNQZXJCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5mcmFtZXNQ
ZXJCdWZmZXIoKSA7IH0KQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogCiAgICAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uOwogICAgIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25JZGVudGlmaWVyIG1faWQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IG1fZGVzdGluYXRpb247CisgICAgUmVmUHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGlu
YXRpb247CiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNE
dXJpbmdHcmFjZWZ1bFNodXRkb3duOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuY3BwCmluZGV4IDA2OTQ1YmFmZDVkMTg5YzdhMGY5YzcyNDAyYmI4ODlkYzgwN2Y2ZjQuLjgy
MTM4MDBiOWYxMGM1ODI2MGUwN2E3OTBmN2NiMjBhN2UwZWEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTQzLDEwICs0MywxMCBAQCB1c2luZyBBdWRpb0J1cyA9
IFdlYkNvcmU6OkF1ZGlvQnVzOwogdXNpbmcgQXVkaW9EZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb247CiB1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lP
Q2FsbGJhY2s7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAorUmVm
PEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1
ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAgICAgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoY2FsbGJh
Y2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgc2FtcGxlUmF0ZSkpOwogfQogCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVs
cywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAg
LTc3LDggKzc3LDkgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5KCkKICAgICB9KTsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnN0YXJ0KCkKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFy
dChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZCkKIHsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWQpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdl
czo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbiht
X2Rlc3RpbmF0aW9uSUQpLAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsK
QEAgLTg5LDE5ICs5MCwzMSBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3Rv
cCgpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklE
KSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9w
QXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKKyAgICBtX2Rpc3BhdGNo
VG9SZW5kZXJUaHJlYWQgPSBudWxscHRyOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBh
dWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHJlbmRlcmluZyBvbiB0aGUgbWFpbiB0aHJl
YWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgbm90IGFjdGl2ZSwgd2hpY2ggaXMgbGlrZWx5IG5vdCBh
IGdvb2QgaWRlYS4KKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChhdWRp
b0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5u
ZWxCdWZmZXJzLnNpemUoKSk7CiAgICAgYXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUo
YXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1Rv
UHJvY2VzcywgZmFsc2UpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0Rh
dGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFu
bmVsTWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRh
KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOwogCi0gICAgbV9jYWxsYmFjay5yZW5k
ZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGF1ZGlv
QnVzRGF0YS5vdXRwdXRQb3NpdGlvbik7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAg
IGF1dG8gZG9SZW5kZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBh
dWRpb0J1cyA9IFdURk1vdmUoYXVkaW9CdXMpLCBmcmFtZXNUb1Byb2Nlc3MgPSBhdWRpb0J1c0Rh
dGEuZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiA9IGF1ZGlvQnVzRGF0YS5vdXRwdXRQ
b3NpdGlvbl0geworICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5nZXQoKSwg
ZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7CisgICAgfTsKKyAgICBpZiAobV9kaXNw
YXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChb
ZG9SZW5kZXIgPSBXVEZNb3ZlKGRvUmVuZGVyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRvUmVuZGVyKCk7
CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG9SZW5kZXIoKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuaAppbmRleCBhZGE2ZmVlZmYzNzQzMGYzYzRkZDM3ZjEzYzdl
M2E0ZTc2NmEzOWRhLi45MDdlY2Y1YTc3ZjQyYjk0Nzg5MGJkZjNhMTdlMThlY2ZiNWFhNWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGlj
OgogICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CiAgICAgdXNpbmcgQXVk
aW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOwogCi0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwor
ICAgIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYs
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsK
IAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smLCBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAg
flJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpOwpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgotICAgIHZvaWQg
c3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248
dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lk
IHN0b3AoKSBvdmVycmlkZTsKICAgICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJu
IG1faXNQbGF5aW5nOyB9CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQpAQCAtNzMsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fZnJhbWVzUGVyQnVmZmVyIHsgMCB9OwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFs
c2UgfTsKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAK
aW5kZXggMmU4NjFhMWU0ZTMxZTE0NzgyYTJiOWU4MzE5OGMxNjdhNTk0NjExMy4uZDVhZWYxNTM0
YWQyMzY1ZDIxMzdhMTdiNmY2ZDQ0ZTFlZjg1MTllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlh
U3RyYXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0
ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorUmVmPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+
IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVu
c2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRl
Z3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVn
eS5oCmluZGV4IDgxN2M0YzI5YjE3MzJmNDVmOTBlMjE1NWQ2NWNlZTg0N2MxN2JlZTIuLjZiN2I5
Y2U2MDNhODczOWU3MWQ5MDQ3NWZjYzc4NzI2OGY2ZDlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCkBAIC0zOSw3
ICszOSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rl
c3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisgICAgUmVmPFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0Nh
bGxiYWNrJiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNj
NmJjYTdiNjUzYTY1MjdiNy4uZWJiYjNiZWE2ZWRiYjQ3YmNiNGUyZDBiMjk3ZmNkMDVlYmE2MzI5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtNjksNyArNjksNyBAQCBQYXN0
ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0
cmF0ZWd5KCkKIGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJh
dGVneSB7CiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIFJlZjxBdWRp
b0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICAgICAgdW5zaWduZWQgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRmNGExZjc4NTA0ZGJlMjMwYTk3N2U5N2ZkMjU5ZDI0ZTRm
OTIwMzEuLmUwMzQyM2Q3NTNjYjE5ODBlZTNlYjg4OTJmYTI4NTFlZTQ5NjI1MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNjUsNyArNjUsNyBAQCBQYXN0ZWJvYXJkU3Ry
YXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkK
IGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7CiBw
cml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlv
RGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxs
YmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNv
bnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA0ZDYzZjQwY2ZlZDc3MmE1NmMyNTRjMDUzMTA3MzI1
YTJkOWFiNmUzLi43NDYxOWRlNDhlNjE0MWFkN2Q5YmVkMjZjMDE2N2Y4MWUxNWQ5YjRlIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04MzgsNiArODM4
LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5j
ZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNlcyBzZXRBc3BlY3RSYXRpb09mSW1nRnJv
bVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldENTU0lu
ZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZDpZRVNdOworICAgIFtwcmVmZXJlbmNl
cyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CiB9CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFj
aCB0ZXN0LgpAQCAtOTMxLDcgKzkzMiw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5j
ZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgW3ByZWZlcmVuY2VzIHNldFdlYkF1ZGlvRW5h
YmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRNb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9F
bmFibGVkOllFU107Ci0gICAgW3ByZWZlcmVuY2VzIHNldEF1ZGlvV29ya2xldEVuYWJsZWQ6WUVT
XTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TWVkaWFTb3VyY2VFbmFibGVkOllFU107CiAgICAgW3By
ZWZlcmVuY2VzIHNldFNvdXJjZUJ1ZmZlckNoYW5nZVR5cGVFbmFibGVkOllFU107CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQppbmRleCAzMWFlYzM4MmU3YmEzYTNhYmY5
ZjI3MTIyZmI4NGUyMDU3ODgwN2M0Li4xZDA5MTNiNGVmMDU5YTRlMWU3OTA2YzVlYjQ5ZGVkYjY2
NDY0NTk1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CkBAIC03Miw3
ICs3Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICBleGl0X2NvZGUgPSBl
LmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9jb2RlCiAKLSAgICBkZWYgZ2VuZXJhdGVf
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50
YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxl
LCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAgIGRlZiBnZW5l
cmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3RvcnksIHN1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5
X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0
ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgogICAgICAgICBpZGxfZmlsZXNfbGlz
dCA9IHRlbXBmaWxlLm1rc3RlbXAoKQogICAgICAgICBmb3IgaW5wdXRfZmlsZSBpbiBvcy5saXN0
ZGlyKGlucHV0X2RpcmVjdG9yeSk6CiAgICAgICAgICAgICAobmFtZSwgZXh0ZW5zaW9uKSA9IG9z
LnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKQEAgLTk4LDYgKzk4LDcgQEAgY2xhc3MgQmluZGlu
Z3NUZXN0czoKICAgICAgICAgICAgICAgICctLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUnLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
CiAgICAgICAgICAgICAgICAnLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywg
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0t
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgcGFpbnR3b3JrbGV0Z2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCisgICAgICAgICAgICAgICAnLS1hdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXRlc3RHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUnLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAg
ICAgICAgICAnLS12YWxpZGF0ZUFnYWluc3RQYXJzZXInXQogCkBAIC0yMDEsNiArMjAyLDcgQEAg
Y2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlbmFtZSA9ICdTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsJwogICAgICAgICB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1l
ID0gJ1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHBhaW50d29y
a2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdQYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCisgICAgICAgIGF1ZGlvd29ya2xldGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5pZGwnCiAgICAgICAgIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUg
PSAnQmluZGluZ1Rlc3RHbG9iYWxDb25zdHJ1Y3RvcnMuaWRsJwogCiAgICAgICAgIHdvcmtfZGly
ZWN0b3J5ID0gdGVtcGZpbGUubWtkdGVtcCgpCkBAIC0yMTMsOSArMjE1LDEwIEBAIGNsYXNzIEJp
bmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9y
ZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRf
cmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKICAgICAgICAgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRf
cmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKQorICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5y
ZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNl
dF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGVuYW1lKQogCi0gICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2Rl
cGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBz
dXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUs
IHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1l
bnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lf
ZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgICAgICBwcmludCgnRmFpbGVkIHRvIGdlbmVyYXRlIGEg
c3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZS4nKQogICAgICAgICAgICAgc2h1dGlsLnJtdHJl
ZSh3b3JrX2RpcmVjdG9yeSkKICAgICAgICAgICAgIHJldHVybiAtMQpAQCAtMjM1LDYgKzIzOCw4
IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3Nl
ZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2Jh
bHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgcGFpbnR3b3JrbGV0Z2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxfdGVz
dHNfcGFzc2VkID0gRmFsc2UKKyAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdl
cygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dv
cmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgorICAgICAgICAgICAgICAg
IGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmls
ZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3Rvcnks
IHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAg
IGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogCg==
</data>
<flag name="commit-queue"
          id="426067"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410198</attachid>
            <date>2020-09-30 20:42:36 -0700</date>
            <delta_ts>2020-10-01 08:24:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20200930204235.patch</filename>
            <type>text/plain</type>
            <size>165998</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5hM2UxZTYxZGJjZDExNWRkMmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFi
bGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAg
Y29uZGl0aW9uOiBFTkFCTEUoV0VCX0FVRElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0
TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVl
NDYzNTU0NmY3NmNmOTBlLi4xOTQzODAyM2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYs
NiArMTc2Nyw3IEBAIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChX
ZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJRVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFD
RV9JTkNMVURFX0RJUkVDVE9SSUVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMsOCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmlu
ZGluZ3MKICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAt
LXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfSkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5k
aW5ncykKIAogaWYgKEVOQUJMRV9XRUJJTlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFk
Y2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVk
MjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtMzMwLDYgKzMzMCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGEx
M2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTEsNCArMSw1IEBACiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhj
ZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJh
dGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRp
YVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXVkaW9UcmFja01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1
OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4yYzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYy
MDYwNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydQogU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAogUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1QID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNf
RklMRSA9ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApA
QCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkKICMKIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4s
JSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVS
TlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAk
KEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5D
SUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RF
UEVOREVOQ0lFUykKIAkkKGZvcmVhY2ggZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+
JChJRExfRklMRVNfVE1QKSQoTkwpKQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1f
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJ
TEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAt
LWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9N
QUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXBy
b2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkg
LS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNw
YWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0
cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxF
U19UTVApCiAKIEpTJS5jcHAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQo
SURMX0FUVFJJQlVURVNfRklMRSkgJChJRExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVf
QU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMy
MmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmVi
ZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVk
QXRSdW50aW1lPUF1ZGlvV29ya2xldCwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRh
YmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5
MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMuLmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0
NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldC5jcHAKQEAgLTMxLDE1ICszMSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1
ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1JlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigq
bmV3IEF1ZGlvV29ya2xldChkb2N1bWVudCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiB3b3JrbGV0OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xl
dChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitW
ZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7
CisgICAgLy8gV2ViQXVkaW8gdXNlcyBhIHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJu
IHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVk
aW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQoKQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1
ZGlvV29ya2xldDo6cHJveHkoKSBjb25zdAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5w
cm94aWVzKCk7CisgICAgaWYgKHByb3hpZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHBy
b3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1
ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQwNTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRk
NDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaApAQCAtMzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1
YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3Jl
YXRlKCk7CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
CisgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3Vt
ZW50Jik7CisKKyAgICAvLyBXb3JrbGV0LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNj
b3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmlkbAppbmRleCBiYzVlYThmMGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3
Li44MGM2YTcyNDAxODNjNDc1NzQ2MjljODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsy
OCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0
dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAg
ICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJl
Q29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyNjBlMjZmZDE4ODhh
NmU0Yzk1ZTc4OTQ1NjZkOTk3ZjYzNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSk7CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShB
dWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCisgICAgOiBXb3JrbGV0R2xvYmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwpCisg
ICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cit9
CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSA9
IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlpbmdU
aHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJkMjMz
YWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVjdCBX
b3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0IFdv
cmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7Cisg
ICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1bmRl
cmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
KTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JF
R0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJu
IGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcwOTJh
NGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRp
b1dvcmtsZXQsCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb05h
dGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVF
eG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblByb3Rv
dHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNlIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJbXBs
ZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcy
MTYxNGJiY2EyYmM5YTA1ZmIwZTk0YmFmMWNlYmI2OGM5M2FhMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVESU8p
CisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUgIkF1
ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmtsZXQobWFr
ZVdlYWtQdHIod29ya2xldCkpCisgICAgLCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3JrbGV0VGhy
ZWFkOjpjcmVhdGUoeyB3b3JrbGV0LmRvY3VtZW50KCktPnVybCgpIH0pKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dvcmtsZXRUaHJlYWQtPnN0YXJ0KCk7Cit9CisK
K0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7CisgICAgbV93b3JrbGV0VGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1vZGUpOworICAgIHJldHVybiB0
cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhN2FkZjRmMjgzODAz
YWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldDsKK2NsYXNzIEF1ZGlvV29ya2xldFRo
cmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgOiBwdWJsaWMgV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSh3b3Jr
bGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCk7CisKKyAg
ICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRoZSBtYWluIHRocmVhZCB0byBwb3N0IHRhc2sg
YmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0
cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBXZWFr
UHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0OworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+
IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGUuaWRsCmluZGV4IDU2MjcxNDg2NjNmMDQyMThiMWU1NTA1MTc1YjA0OTVhNTQ2
OTEyMDYuLjM0MGI4Y2FiMWQyNDM0MGY5YTY2N2I0ZWE3NTJiYjVjN2YyYzMzMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlk
bApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAg
IEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVk
aW9Xb3JrbGV0LAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
LAogICAgIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKaW5kZXggYTllMTliNjk1
ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5ZjExZjkwNS4uODcxYWVlMDAwZjhkNTBlYzRjMzA0NTcx
OTdmNWIyYjQyZjA0ZDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKQEAgLTI4LDcgKzI4LDcg
QEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5n
PUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwKIF0gZGlj
dGlvbmFyeSBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAg
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHMgPSAxOwogICAgIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTc3ZjM5OTQ0ZjJiZWNi
NzY4Yzg5NTZjYWY1ZWVhMmFkODhhMGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9X
b3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgor
CisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRl
cnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJz
IHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVkQ29weSgpCisgICAgfTsKK30KKworQXVkaW9X
b3JrbGV0VGhyZWFkOjpBdWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCisgICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycy5pc29sYXRlZENvcHko
KSkKK3sKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0KCkKK3sKKyAgICBhdXRv
IGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
ayk7CisKKyAgICBSZWY8VGhyZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTog
QXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsKKyAgICAgICAgd29ya2xldFRocmVhZCgpOworICAgIH0s
IFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICAvLyBGb3JjZSB0aGUgVGhyZWFkIG9iamVjdCB0byBi
ZSBpbml0aWFsaXplZCBmdWxseSBiZWZvcmUgc3RvcmluZyBpdCB0byBtX3RocmVhZCAoYW5kIGJl
Y29taW5nIHZpc2libGUgdG8gb3RoZXIgdGhyZWFkcykuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVu
Y2UoKTsKKyAgICBtX3RocmVhZCA9IFdURk1vdmUodGhyZWFkKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJlYWQoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpOworCisjaWYgVVNFKEdMSUIpCisgICAgR1JlZlB0cjxHTWFpbkNvbnRl
eHQ+IG1haW5Db250ZXh0ID0gYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBn
X21haW5fY29udGV4dF9wdXNoX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXI7Cisg
ICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29y
a2xldEdsb2JhbFNjb3BlTG9jayk7CisgICAgICAgIG1fd29ya2xldEdsb2JhbFNjb3BlID0gQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZSgqdGhpcywgbV9wYXJhbWV0ZXJzKTsKKworICAg
ICAgICBzY3JpcHRDb250cm9sbGVyID0gbV93b3JrbGV0R2xvYmFsU2NvcGUtPnNjcmlwdCgpOwor
CisgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CisgICAgICAgICAgICAvLyBU
aGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0
byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCisgICAgICAgICAgICAv
LyBmb3JiaWRFeGVjdXRpb24oKSBjb3VsZG4ndCBiZSBjYWxsZWQgZnJvbSBzdG9wKCkuCisgICAg
ICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5zY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7
CisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJ1bkV2ZW50TG9vcCgpOworCisjaWYgVVNFKEdMSUIpCisgICAg
Z19tYWluX2NvbnRleHRfcG9wX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgUmVmUHRyPFRocmVhZD4gcHJvdGVjdG9yID0gbV90aHJlYWQ7CisKKyAgICBB
U1NFUlQobV93b3JrbGV0R2xvYmFsU2NvcGUtPmhhc09uZVJlZigpKTsKKworICAgIFJlZlB0cjxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGU7CisgICAg
eworICAgICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhh
dCB3ZSBkb24ndCBjaGFuZ2UgbV93b3JrZXJHbG9iYWxTY29wZQorICAgICAgICAvLyB3aGlsZSBX
b3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNjZXNzaW5nIGl0LgorICAgICAgICBhdXRvIGxvY2sgPSBo
b2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAg
ICAgICAgLy8gRGVsYXkgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBXb3JrZXJHbG9iYWxTY29wZSBj
b250ZXh0IHVudGlsIGFmdGVyIHdlJ3ZlIHVubG9ja2VkIHRoZQorICAgICAgICAvLyBtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2VyR2xvYmFsU2NvcGVNdXRleC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVz
ZSBkZXN0cnVjdGluZyB0aGUKKyAgICAgICAgLy8gY29udGV4dCB3aWxsIHRyaWdnZXIgdGhlIG1h
aW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5zdCB1cyB0byBkZWxldGUgdGhlIFdvcmtlclRocmVhZAor
ICAgICAgICAvLyBvYmplY3QsIGFuZCB0aGUgV29ya2VyVGhyZWFkIG9iamVjdCBvd25zIHRoZSBt
dXRleCB3ZSBuZWVkIHRvIHVubG9jayBhZnRlciB0aGlzLgorICAgICAgICB3b3JrbGV0R2xvYmFs
U2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUobV93b3JrbGV0R2xvYmFsU2NvcGUpOworICAgIH0KKwor
ICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0aGUgY29udGV4dCwgd2hp
Y2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCisgICAgLy8gV2UgY2Fubm90
IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3Ro
ZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95IHRoZW0uCisgICAgd29y
a2xldEdsb2JhbFNjb3BlVG9EZWxldGUgPSBudWxscHRyOworCisgICAgLy8gU2VuZCB0aGUgbGFz
dCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJlIERlcmVmJ2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KV0geyB9KTsKKworICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJlYWR5IGRlc3Ry
b3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBhY2Nlc3MgInRoaXMiLgor
ICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpy
dW5FdmVudExvb3AoKQoreworICAgIC8vIERvZXMgbm90IHJldHVybiB1bnRpbCB0ZXJtaW5hdGVk
LgorICAgIG1fcnVuTG9vcC5ydW4obV93b3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFk
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWUyNzAyYzk4ZmRmODNmOTc1Mjk0NGE0NTBjOTM0YWM4NTM3OTQ2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CisKK3N0cnVjdCBXb3JrbGV0UGFyYW1l
dGVycyB7CitwdWJsaWM6CisgICAgVVJMIHdpbmRvd1VSTDsKKworICAgIFdvcmtsZXRQYXJhbWV0
ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFk
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRocmVhZD4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVhdGUoY29uc3QgV29y
a2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAgIH0KKworICAgIHZv
aWQgc3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1
bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIHZv
aWQgd29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAg
V29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRlcnMgbV9wYXJhbWV0
ZXJzOworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFs
U2NvcGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
azsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUzMDMwN2QyMTA5NDRm
M2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwogICAgICwgbV9sb2dn
ZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRl
bnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUo
KSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAg
LCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7CiAgICAgLy8gQWNj
b3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZp
Z2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscwogICAgICwg
bV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVl
TG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0Ojpj
cmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkp
CiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuaWRsCmluZGV4IGRmOTM1YTQwOGY0Y2IwNDNhN2Q4OTdkYjYzNzNiNDE0
NzdkOGQ3NDguLjZjNTVlNmRlMWRiYjQ4YjhkMDUyYjAzMzdjYjA5MTRkOTYwNTA5YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbApAQCAtNDIsNyArNDIsNyBAQAogICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRv
IHRoaXMgbGlzdGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlz
dGVuZXI7CiAKLSAgICBbU2FtZU9iamVjdCwgU2VjdXJlQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGlu
Zz1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3Jr
bGV0OworICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7
CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0U3RhdGUgc3RhdGU7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCmluZGV4IDc1MWRlOTE4Y2UxZGMzNmExYzc5ZTk1MDNjOTI4ZjRmODlmMDk2YmMu
LmFlMzRmZmJhMjNjZGExNmNkOWFhNzQ2MGU3YTg3MmU3OTgyMTNlOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDEwICszMCwxMyBAQAogCiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlv
V29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtOTksMTggKzEwMiwzMCBA
QCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkKQogICAgICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9u
LgogICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICAgICAgY3JlYXRl
RGVzdGluYXRpb24oKTsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAg
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rp
b24oKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKK0Z1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9p
ZCgpPiYmKT4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkRnVuY3Rpb24oKQoreworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCku
YXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICByZXR1cm4gW3dvcmtsZXRQcm94eSA9
IG1ha2VSZWYoKndvcmtsZXRQcm94eSldKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgewor
ICAgICAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxT
Y29wZShbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAg
cmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7
CiAgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICBt
X2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE4LDcgKzEzMyw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjpyZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsK
ICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQot
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgY29udGV4dCgpLnBv
c3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApAQCAtMTYzLDcgKzE3OCw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGNoYW5uZWxDCiAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAg
ICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigp
OwotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9u
LT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGVkZTE1MzNjMTY0ODI5
Y2YxZTIzYmE5M2MyOWE4ODYzNDIwM2U0ZDIuLjdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQy
MDA1YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDcsNiArNDcsOCBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNl
QXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0
aW9uKCk7CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpOworCiAgICAgdm9pZCBpbml0aWFsaXplKCkgZmluYWw7
CiAgICAgdm9pZCB1bmluaXRpYWxpemUoKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZpbmFsOwpAQCAtNjEsNyArNjMsNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNQbGF5aW5nKCkgZmluYWw7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlv
bj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5h
dGlvbjsKICAgICBTdHJpbmcgbV9pbnB1dERldmljZUlkOwogICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZJbnB1dENoYW5uZWxzIHsgMCB9OwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmYWEzMzY1MmVkYjM3NjNiMzljMWY2YmI0
N2Y2YmIyNGZhMDNjNDIwLi41M2I1NTQxM2U5MjYxYjc3MGVmN2FjM2JhYWQ2ZDg2ZTBjODI5ZWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0zMSw3ICszMSwxMCBAQAogI2lu
Y2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAi
QXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtOTYsOSArOTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0
cnVlOwogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwogCi0gICAgLy8g
RklYTUU6IFNob3VsZCB3ZSBjYWxsIGxhenlJbml0aWFsaXplIGhlcmU/Ci0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2UgY3JlYXRl
IGZvciBvZmZsaW5lIGF1ZGlvLgotICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUo
Im9mZmxpbmUgcmVuZGVyZXIiLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyldKCkgbXV0YWJsZSB7CisgICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gb2ZmbGluZVJlbmRlcigpOwogICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCByZXN1bHQsIGN1cnJlbnRTYW1wbGVGcmFtZSA9IG1fY3VycmVudFNhbXBs
ZUZyYW1lLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewogICAgICAg
ICAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gZmFsc2U7CkBAIC0xMTQsNyArMTE1LDE3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsK
LSAgICB9LCBUaHJlYWRUeXBlOjpBdWRpbyk7CisgICAgfTsKKworICAgIGlmIChhdXRvKiB3b3Jr
bGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICB3
b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtvZmZUaHJl
YWRSZW5kZXJpbmcgPSBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG9mZlRocmVhZFJlbmRlcmluZygpOwor
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRo
ZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCisgICAgbV9y
ZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFdURk1vdmUo
b2ZmVGhyZWFkUmVuZGVyaW5nKSwgVGhyZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggOTVjYzEwODU1ZDhiYWZlZDdhNDUzYzRiZTlmNGQ5MmRl
MjQ1MzdiYi4uYzdlY2ZkZDE1NWM1MjgwZDU4NTRiZmI1MmJlYmVhMDI4NGFkYjdhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTIwNSw3ICsyMDUsMTAgQEAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCitNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAogTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcApAQCAtMjU3OSw2ICsyNTgyLDcgQEAgd29y
a2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0LmNwcAog
d29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcAogd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAog
eG1sL0RPTVBhcnNlci5jcHAKQEAgLTI2ODAsNiArMjY4NCw3IEBAIEpTQXVkaW9UaW1lc3RhbXAu
Y3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1dvcmts
ZXQuY3BwCitKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogSlNBdWRpb1dvcmtsZXROb2Rl
LmNwcAogSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAKIEpTQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTJkYjNjMjEwY2VhY2U1Mjk5MTg2OGVjYjBj
YjczNjM1Y2ZlZDAuLmIwYzI5NzBmNWFjZGY5ZTIzMzBlYmY4ZDdhOTQwMTJkNWU2MDMzODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI0NTEsNiArMjQ1MSwxMCBAQAogCQk4MzNCOUUzMjFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNDFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJBMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oICov
OyB9OwogCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUy
QzFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggKi87IH07CisJCTgz
M0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCRDgxMzI1MjRENEUyMDA2
RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovOyB9OworCQk4MzNCRDgxODI1MjRENEY1
MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovOyB9OworCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5oICovOyB9OworCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5oICovOyB9OwogCQk4MzNEMUM3NjI0RDhENTRGMDBFODEzREYgLyog
V2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmggKi87IH07CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNo
YW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTgzNDNEOTg0MjREMERFRTkwMDlBQkQ0OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0M0Q5ODEy
NEQwREVBOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmggKi87IH07CkBAIC0yNTA4
LDYgKzI1MTIsNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVu
dHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5o
ICovOyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUw
QjYzODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZG
QTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmls
ZVN5c3RlbS5oICovOyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8q
IFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlB
QUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAv
KiBIVE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyog
SUlSRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNTM1
LDYgKzI1NDAsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJn
ZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZP
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFG
NTI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IH07CisJCTgzRDZBQUU2MjUy
NEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjRE
QTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMu
aCAqLzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlB
MDFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI1NDQs
NiArMjU1MCw3IEBACiAJCTgzRkIzMzcxMUY1MDhBNTQwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aCAqLzsgfTsKIAkJODNGQjMzNzMxRjUwOEE1ODAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkYx
RjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3NTFG
NTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkMxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRo
cmVhZC5oICovOyB9OwogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0
MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBF
dmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkw
MjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5
IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwpAQCAtMTA1NzgsNiArMTA1ODUsMTMgQEAK
IAkJODMzQjlFMkQxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1GaWxlRW50
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRTFGNTA4RDgwMDBF
MEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5
RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTMyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNr
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrbGV0UGVuZGlu
Z1Rhc2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQTI1
MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMz
Q0Y3MEYyMERCM0Y1RjAwMTQxQkNDIC8qIEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlT2JzZXJ2
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3MzI0RDhE
NTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNEMUM3NTI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MTgsNyBAQAogCQk4Mzk5NDcwOTFG
NTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIg
LyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1
MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5
MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRN
TFdCUkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TFdCUkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiAr
MTA3NjcsNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVz
dEV2ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0
cFJlcXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1
MTFGMzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QmlxdWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5
RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJpcXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlF
MEQyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVh
ZEZpbHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEs
NiArMTA4MDcsOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURp
cmVjdG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2
RTFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAv
KiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAx
Nzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xl
dFRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
ZGlvV29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3
Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJ
bml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2MSw4IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0
ZXh0ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUw
RjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4
ICsxNzU3NSw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUu
aCAqLywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAg
Ki8sCiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywK
LQkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3Bw
ICovLAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtl
ci5oICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRl
ci5jcHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWls
ZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9t
ZXRyeS5oICovLApAQCAtMTg3MjAsNiArMTg3MzksOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0Yw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQy
NTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJ
ODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5n
UHJveHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9v
cC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3Au
aCAqLywKQEAgLTE5NzM4LDggKzE5NzU5LDExIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJE
RkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAw
NTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIw
MDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0
RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEw
MjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUy
MjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJCQkJODMzQkQ4MTUyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEz
MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEz
MjkyMTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJ
CQk0QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAq
LywKIAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODIsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBF
MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBB
OTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2
RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1
N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JE
ODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8s
CisJCQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuY3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlLmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuaWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlT3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dv
cmtsZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBC
MDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDggKzMwNDk4LDExIEBACiAJ
CQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAw
NkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmts
ZXROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUy
NTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAw
Qjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcy
LDYgKzMxODA2LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFS
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8q
IElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4
IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3
ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTUsNiBAQAog
CQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
Q29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5
MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEy
NTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ1OTUsNiArMzQ2MjksOCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlE
NiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdG
MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8q
IFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0NSw5
IEBACiAJCQkJNEJERUEzMjAyMTdFQzU1RjAwNTJERkNEIC8qIFdvcmtsZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRCN0Y5QzUyMjE4M0I1RTUwMDFDRUJBMCAvKiBXb3JrbGV0Q29uc29sZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEzMjUyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmts
ZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3
MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0FD
RDAxMzI1MjI5RTEwMDAwRDEyNEUgLyogV29ya2xldE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4
MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IGIxNGI4MTU0MmRiODg5ZWM2ZDI1OWJjNWI3
MGVmMmE1MDk5Yzk2ZDEuLjMyM2RlZTc4ZDhiYmVjOWVjZWUxNTZiOTMzZWFkMDg2MTQxOTdhOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIgogCi0jaWYgRU5BQkxFKENTU19Q
QUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJK
U0RPTUdsb2JhbE9iamVjdFRhc2suaCIKICNpbmNsdWRlICJKU0RPTUd1YXJkZWRPYmplY3QuaCIK
QEAgLTE1MSw0ICsxNDksMyBAQCBKU1dvcmtsZXRHbG9iYWxTY29wZSogdG9KU1dvcmtsZXRHbG9i
YWxTY29wZShWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuaAppbmRleCA4ZmVmOTIwMWZlZGMzNjFlOTI1Y2M4MDYyZjJjZjI2
ZGEzMWNlYzYwLi5iOGExN2VjNGU3ZTJmYWNjYmU4NDY3NGNhMDE0ZDEzNWJlNzA1OWYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuaApAQCAtMjYsOCArMjYsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShD
U1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCkBAIC04OCw1
ICs4NiwzIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBXb3JrbGV0R2xvYmFsCiBKU1dvcmtsZXRHbG9iYWxTY29wZSog
dG9KU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19QQUlOVElOR19BUEkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5k
ZXggNjJiMGQ2ZDU0YTRmMDAwMmRlZTRiZDJkZmM3ZWM2ZWQxMzdkODQ2OC4uYjNhOGQ1YjEzYzQ1
MTFjZjc4NDI1NzU5ZDYwNTE0ODExMTQ5MGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oQXVkaW9MaXN0ZW5lcikgXAogICAgIG1hY3JvKEF1ZGlv
UGFyYW1NYXApIFwKICAgICBtYWNybyhBdWRpb1dvcmtsZXQpIFwKKyAgICBtYWNybyhBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldE5vZGUpIFwKICAgICBt
YWNybyhBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNybyhBdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAppbmRleCAzOGRmNjc3NTJlOTBhNmEyZTAx
NzRjZmFmYmM0Zjg3MWVhODFjMTRhLi4wNzY2MDgzODA3NGUyNmViZjQzMWQ1MWE5YWYzMTAxOWM1
OWEwNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlND
bGllbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlND
bGllbnREYXRhLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRE9NR0NPdXRwdXRD
b25zdHJhaW50LmgiCiAjaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFzZS5oIgogI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCkBAIC02OCw5ICs2OSwxMiBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVudERhdGEo
Vk0mIHZtKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVhcENlbGxUeXBl
Rm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0
ZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgorICAgICwgbV9oZWFwQ2Vs
bFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRl
PEpTV29ya2xldEdsb2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQog
ICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNv
SGVhcENlbGxUeXBlOjpjcmVhdGU8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZT4oKSkKLSAgICAs
IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5
cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKKyNlbmRpZgorI2lmIEVOQUJMRShX
RUJfQVVESU8pCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
PigpKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLCBtX2hlYXBD
ZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdChKU0M6Oklzb0hlYXBDZWxs
VHlwZTo6Y3JlYXRlPEpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdD4oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4M2I4
MjM0YzMzNWRlZDE0NTBkMTgxM2ZlODQyOTdhOTc1ODM4OTUxLi5iODQ0MGU4NzcwZTQ3MjkxZjdl
ZTIwNjMxOTllYTA1YzNjNGJiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC05OSw5ICs5OSwxMiBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxs
VHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKICNlbmRp
ZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2Vs
bFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGU7CisjZW5kaWYKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlw
ZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOwogI2VuZGlmCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVh
cENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVj
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAppbmRleCBkMGE1NDdhYzU2NzM5ZmRkZTFlNzBlOGVjMTliMmI0ODg1ZWI1NjA5Li5l
MzkwMTgwZjU3MWY5ZTFlMzViYzkyM2IxZDc3MWQ0Yjk1Y2VkYTQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNiw2
ICsyNiw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgU2NyaXB0U291cmNl
Q29kZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29w
ZTsKIAotY2xhc3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciB7CitjbGFzcyBXb3JrZXJTY3JpcHRD
b250cm9sbGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtl
ckdsb2JhbFNjb3BlKik7CkBAIC02Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBmb3JiaWRF
eGVjdXRpb24oKS9pc0V4ZWN1dGlvbkZvcmJpZGRlbigpIHRvIGd1YXJkIGFnYWluc3QgcmVlbnRy
eSBpbnRvIEpTLgogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgogICAgIHZv
aWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOwotICAgIGJvb2wgaXNUZXJtaW5hdGlu
Z0V4ZWN1dGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNv
bnN0IGZpbmFsOwogCiAgICAgLy8gQ2FsbGVkIG9uIFdvcmtlciB0aHJlYWQgd2hlbiBKUyBleGl0
cyB3aXRoIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiBjYXVzZWQgYnkgZm9yYmlkRXhlY3V0aW9uKCkg
cmVxdWVzdCwKICAgICAvLyBvciBieSBXb3JrZXIgdGhyZWFkIHRlcm1pbmF0aW9uIGNvZGUgdG8g
cHJldmVudCBmdXR1cmUgZW50cnkgaW50byBKUy4KQEAgLTc5LDExICs4MCwxMSBAQCBwdWJsaWM6
CiAKICAgICBKU0M6OlZNJiB2bSgpIHsgcmV0dXJuICptX3ZtOyB9CiAgICAgCi0gICAgdm9pZCBy
ZWxlYXNlSGVhcEFjY2VzcygpOwotICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKTsKKyAgICB2
b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2Vz
cygpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVu
TG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKLSAgICB2b2lkIHJlbW92ZVRp
bWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9u
Q2FsbGJhY2spOworICAgIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxv
b3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1v
dmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1
Z2dlciopOwogICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCAxMGYzZTY2ODY2NTQ1YTVhNjBhOWVlNWE5Zjg2NzRhZTNjMjg0OTMyLi41OGZkMWE3YTI2ZmRk
MWRhYzRkYjJiNzBiMWM1NDUzNzViY2Q0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzc1LDcgKzc3NSw3IEBAIHN1
YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKIAogICAgICMgRm9yIHdvcmtlcnMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgcmV0
dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiOwot
ICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEds
b2JhbFNjb3BlLgorICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBh
aW50V29ya2xldEdsb2JhbFNjb3BlIG9yIGEgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuCiAgICAg
cmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2xldEdsb2JhbFNjb3Bl
IjsKIAogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXgg
YmVlMGZjNTA2OTE5ZmNjZmQxNzVmNjljYzUyM2M1NzU2YmMwOGE4OC4uZjRjODRiYzg4YzQxMTQ1
ZGQxNmVkMzgzZDRkMzljNDJjYzVkNjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAgLTQ3LDYgKzQ3LDcgQEAgbXkgJGRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlOworbXkgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICR0
ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwczsKIG15ICRpZGxBdHRyaWJ1dGVzRmlsZTsKQEAgLTY5LDYgKzcwLDcgQEAgR2V0T3B0aW9u
cygnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU9cycgPT4gXCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAg
ICAgICAgICAncGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwk
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAorICAgICAgICAgICAnYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAndGVzdEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUs
CiAgICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM9cycgPT4gXCRzdXBwbGVtZW50
YWxNYWtlZmlsZURlcHMsCiAgICAgICAgICAgICdpZGxBdHRyaWJ1dGVzRmlsZT1zJyA9PiBcJGlk
bEF0dHJpYnV0ZXNGaWxlLApAQCAtODMsNiArODUsNyBAQCBkaWUoJ011c3Qgc3BlY2lmeSBhbiBv
dXRwdXQgZmlsZSB1c2luZyAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RgogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91
dHB1dCBmaWxlIHVzaW5nIC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1
bmxlc3MgZGVmaW5lZCgkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUo
J011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxl
IHVzaW5nIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVz
cyBkZWZpbmVkKCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGll
KCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSB8fCAhZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKIGRpZSgnTXVzdCBz
cGVjaWZ5IHRoZSBmaWxlIGxpc3RpbmcgYWxsIElETHMgdXNpbmcgLS1pZGxGaWxlTmFtZXNMaXN0
LicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlTmFtZXNMaXN0KTsKIGRpZSgnTXVzdCBzcGVjaWZ5
IElETCBhdHRyaWJ1dGVzIGZpbGUgdXNpbmcgLS1pZGxBdHRyaWJ1dGVzRmlsZS4nKSB1bmxlc3Mg
ZGVmaW5lZCgkaWRsQXR0cmlidXRlc0ZpbGUpOwpAQCAtOTUsNiArOTgsNyBAQCAkZGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRk
ZWRpY2F0ZWRXb3JrZQogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
PSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRhdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBz
ID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmlu
ZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyk7CiAKIG15IEBpZGxGaWxlTmFtZXM7CkBAIC0x
MzUsNiArMTM5LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
PSAiIjsKIG15ICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAk
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CitteSAkYXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkdGVzdEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogCiBteSAkaXNvU3Vic3BhY2VzSGVhZGVyQ29kZSA9
IDw8RU5EOwpAQCAtMjM3LDYgKzI0Miw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0
IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBl
bHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlBhaW50V29ya2xldCIpIHsKICAgICAgICAgICAgICAg
ICAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVD
b2RlOworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkF1ZGlvV29ya2xl
dCIpIHsKKyAgICAgICAgICAgICAgICAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENv
bnRleHQgZXEgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICR0ZXN0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAg
ICAgfSBlbHNlIHsKQEAgLTI1NCw2ICsyNjEsNyBAQCBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2Uo
IkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjbwog
R2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAkc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJXb3Jr
bGV0R2xvYmFsU2NvcGUiLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHdv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJm
YWNlKCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OworR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSIsICRh
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRhdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCR0ZXN0
R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkdGVz
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRl
eHROYW1lKTsKIAogaWYgKCRpc29TdWJzcGFjZXNIZWFkZXJGaWxlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGRh
ZTExMDdkMzM0YmM4ZjQzZGYyZjRmN2U4NGE5ODNjMzVkNjZmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDIgQEAKK3BhcnRpYWwgaW50ZXJmYWNlIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2Iw
YTU1OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlz
IGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9t
IHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZl
cnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBj
ZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgK
QEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3Jt
IGJ1aWxkIHNjcmlwdHMgdGhhdCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
LmggYW5kCisgICAgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2Vy
ZSBjcmVhdGVkIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwsIGFu
ZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0
ZSBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKaW5kZXggMTM2ZTRmMTRlY2ZlNWU0
YjlmOWM5NTIwMjc0MzlhNGEzMWQ0OTY0NS4uNmEwZTE5NjY0NTQyZTgxNjgxYzdhNjk3ZWNjNzEx
NWI3YTRkZmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29y
a2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01DU1NOYW1lc3BhY2UuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5j
bHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsMTEgKzU3LDE4IEBAIGNvbnN0
IGNoYXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAi
RE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9u
cyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorLy8gRklYTUU6IEdldCBy
aWQgb2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUgc3RhbmRhcmQtY29tcGxpYW50IFdv
cmtsZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxl
KGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJfcyB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG93
bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0byBtYXliZUNvbnRleHQgPSBQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRTb3VyY2VDb2Rl
KG1vZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7CiAgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTcwLDkgKzc4LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xlCiAKICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CiAgICAgZm9yIChh
dXRvJiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9uTWFwKCkua2V5cygpKQotICAgICAg
ICBkb2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJl
Zihjb250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50LT5zZXRQYWludFdvcmtsZXRHbG9i
YWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CiAgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBQ
YWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7CisgICAgLy8gRklYTUU6IEFkZCBp
bXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBiOWIxMzg1YmIwOGEzZjFjZWQ0ZWIy
YjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIyMDQ4MjIzZjJj
MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCkBAIC00MSwxNSAr
NDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBjbGFzcyBQYWludFdvcmtsZXQgZmlu
YWwgOiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQYWludFdvcmts
ZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWludFdv
cmtsZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IFBhaW50V29ya2xl
dChkb2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICAg
ICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmtsZXQuCisgICAgdm9pZCBhZGRNb2R1
bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29w
ZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgUGFp
bnRXb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhaW50V29ya2xldChEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1bWVudCkKKyAgICB7IH0KIH07CiAK
IGNsYXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNT
U05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmFjZjNmMThjYWRjNjg2
YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMzZmIzMmMxN2Qw
ZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDM5LDcgKzg0MzksNyBA
QCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50Ojpk
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5zdXJl
UGFpbnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRXb3JrbGV0KQotICAgICAgICBtX3Bh
aW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGFpbnRXb3Jr
bGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wYWludFdv
cmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKaW5kZXggMDZhM2VjOTA2NTU4MjZmYmNkOTFhODNiNjQxZTI3ZjU5ZTc1ZGU2MC4uYWViNTgz
Y2E0YjJhZTIxMzMwYWUzNDk4Mzk1YmI2NTgzMGUwNDk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEyNyw2ICsxMjcsMTEgQEAgcHVibGlj
OgogICAgIGJvb2wgY3NzUGFpbnRpbmdBUElFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9DU1NQ
YWludGluZ0FQSUVuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAg
ICB2b2lkIHNldEF1ZGlvV29ya2xldEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9hdWRpb1dv
cmtsZXRFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBhdWRpb1dvcmtsZXRFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1dvcmtsZXRFbmFibGVkOyB9CisjZW5kaWYKKwogI2lm
IEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgdm9pZCBzZXRDU1NUeXBlZE9NRW5hYmxlZChib29s
IGlzRW5hYmxlZCkgeyBtX0NTU1R5cGVkT01FbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9v
bCBjc3NUeXBlZE9NRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NTVHlwZWRPTUVuYWJsZWQ7
IH0KQEAgLTMwMiw2ICszMDcsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdf
QVBJKQogICAgIGJvb2wgbV9DU1NQYWludGluZ0FQSUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBib29sIG1fYXVkaW9Xb3JrbGV0RW5hYmxlZCB7
IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgYm9vbCBt
X0NTU1R5cGVkT01FbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApp
bmRleCA3OTBkYjRiN2U5NmZhOTZkZjg4ZmQ2NzhjYWUwYzcyZTUyM2E4MTk5Li43Y2Q1ZGYxMGZm
ZDEwZmY3M2Q0OTNiZTFjMDlhODE5ZDI0NTI2NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCkBAIC0yNTksOCArMjU5LDYgQEAgcHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAgIGluaXRp
YWw6IGZhbHNlCiBtb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFibGVkOgogICBpbml0aWFsOiBm
YWxzZQotYXVkaW9Xb3JrbGV0RW5hYmxlZDoKLSAgaW5pdGlhbDogZmFsc2UKIHBhZ2luYXRlRHVy
aW5nTGF5b3V0RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIGZ1bGxTY3JlZW5FbmFibGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCmluZGV4IDQzZDU3NjUyOThjMDY3
OTJjNmRkY2U4NWM0MmEwYTNmNTc1YTg3ODMuLjk4NTIwNWRhYmFhYjhkYTM4NmY2NTY0ZDgwOTZm
ZDI4NjU1YzFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3Ry
YXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKQEAg
LTM3LDcgKzM3LDcgQEAgc3RydWN0IE5vd1BsYXlpbmdJbmZvOwogY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKAorICAgIHZpcnR1YWwgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVz
dGluYXRpb24oCiAgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSA9IDA7CiAjZW5kaWYKICNpZiBQTEFU
Rk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVz
dGluYXRpb24uaAppbmRleCBkZWI3NTdkYzQ1ZTU3ODU4NTIxN2ZkM2JlYzA3MTJiNjQ0ZDc1Mzc0
Li4xNjBjNjU3OGUxNWVkNWVhNzUyNWRjNzY4YmQ0ZWYzZmRjNzRmNGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25faAogCiAjaW5jbHVkZSA8bWVtb3J5Pgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCwxNiArNDEsMTYgQEAg
Y2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogLy8gVGhlIGF1ZGlvIGhhcmR3YXJlIHBlcmlvZGljYWxs
eSBjYWxscyB0aGUgQXVkaW9JT0NhbGxiYWNrIHJlbmRlcigpIG1ldGhvZCBhc2tpbmcgaXQgdG8g
cmVuZGVyL291dHB1dCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpby4KIC8vIEl0IG9w
dGlvbmFsbHkgd2lsbCBwYXNzIGluIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQgd2hlbiBpdCBjYWxs
cyByZW5kZXIoKS4KIAotY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7CitjbGFzcyBBdWRpb0Rlc3Rp
bmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvRGVzdGluYXRpb24+IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICAvLyBQYXNzIGluIChu
dW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBpZiBsaXZlL2xvY2FsIGF1ZGlvIGlucHV0IGlzIGRl
c2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZpYyBkZXZpY2UgaWRlbnRpZmljYXRpb24gaW5mb3Jt
YXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcyBjYW4gYmUgcGFzc2VkIGluIHRoZSBp
bnB1dERldmljZUlkLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7
CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uKCkgPSBkZWZhdWx0OwogCi0gICAgdmly
dHVhbCB2b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydChGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1BsYXlpbmco
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDc0YWQ2MTZmYTllMjVkZWI5
OTljOTZiNjY3ZWQxNDk0NzBiZjY4NzIuLmRhNGU0YjJjOGI2MDczNDgzZjlmYWRjNjdiYWZiZmZm
ODY4NWY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDEsNyArNDEsNyBAQCBj
b25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlIEF1ZGlvRGVz
dGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRyOwogCi1zdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxs
YmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkK
K1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQogewogICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1dERldmljZUlkIGFzIGFwcHJvcHJp
YXRlLgogCkBAIC01NSw3ICs1NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsCiAgICAgaWYg
KEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUpCiAgICAgICAgIHJldHVybiBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlKGNhbGxiYWNrLCBzYW1wbGVSYXRl
KTsKIAotICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlVW5pcXVlPEF1ZGlvRGVzdGluYXRpb25D
b2NvYT4oY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAg
IGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25Db2NvYShj
YWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOwogICAgIGRlc3Rp
bmF0aW9uLT5jb25maWd1cmUoKTsKICAgICByZXR1cm4gZGVzdGluYXRpb247CiB9CkBAIC0xMDMs
OSArMTAzLDEwIEBAIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6ZnJhbWVzUGVyQnVm
ZmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJCdXMtPmxlbmd0aCgpOwogfQogCi12b2lk
IEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRv
UmVuZGVyVGhyZWFkKQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
c3RhcnQiKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWQpOwogICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0
YXJ0KG1fb3V0cHV0VW5pdCk7CiAKICAgICBpZiAoIXJlc3VsdCkKQEAgLTExNiw2ICsxMTcsNyBA
QCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiB7CiAgICAgTE9HKE1lZGlhLCAi
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wIik7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVk
aW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZCA9IG51bGxwdHI7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgc2V0SXNQbGF5aW5n
KGZhbHNlKTsKQEAgLTEyMyw2ICsxMjUsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
c3RvcCgpCiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzZXRJc1BsYXlpbmcoYm9vbCBp
c1BsYXlpbmcpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2lzUGxheWluZ0xvY2sp
OwogICAgIGlmIChtX2lzUGxheWluZyA9PSBpc1BsYXlpbmcpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMTczLDE4ICsxNzYsMzggQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5k
ZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUludDMyIG4KIAogICAgIC8vIEFz
c29jaWF0ZSB0aGUgZGVzdGluYXRpb24gZGF0YSBhcnJheSB3aXRoIHRoZSBvdXRwdXQgYnVzIHRo
ZW4gZmlsbCB0aGUgRklGTy4KICAgICBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1cyhidWZmZXJzLCBt
X291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBudW1iZXJPZkZyYW1lcywgMCwgbnVt
YmVyT2ZGcmFtZXMpOwotICAgIHNpemVfdCBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbCht
X291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIHNpemVfdCBmcmFtZXNUb1Jl
bmRlcjsKIAorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2ZpZm9Mb2Nr
KTsKKyAgICAgICAgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8tPnB1bGwobV9vdXRwdXRCdXMucHRy
KCksIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICAvLyBXaGVuIHRoZXJlIGlzIGEgQXVk
aW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZC4KKyAg
ICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZXNU
b1JlbmRlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4g
bG9jayhtX2lzUGxheWluZ0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgICAgICAgICAgaWYg
KGxvY2sub3duc19sb2NrKCkgJiYgbV9pc1BsYXlpbmcpCisgICAgICAgICAgICAgICAgcmVuZGVy
T25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7CisgICAgICAgIH0pOworICAgIH0gZWxz
ZQorICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKworICAg
IHJldHVybiBub0VycjsKK30KKworLy8gVGhpcyBydW5zIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJl
YWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwgb24gdGhlIGF1ZGlvIGRldmljZSdzIHJl
bmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgordm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJl
bmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVuZGVyKQorewogICAgIGZvciAo
c2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8IGZyYW1lc1RvUmVuZGVyOyBw
dXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKSB7CiAgICAg
ICAgIGlmIChtX3Jlc2FtcGxlcikKICAgICAgICAgICAgIG1fcmVzYW1wbGVyLT5wcm9jZXNzKHRo
aXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3JlbmRl
ckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBtX291dHB1dFRp
bWVzdGFtcCk7CiAKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2ZpZm9Mb2NrKTsK
ICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0cigpKTsKICAgICB9Ci0KLSAgICBy
ZXR1cm4gbm9FcnI7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oCmluZGV4IDAwZGRhMmZiMmEzN2I4M2YxMGVmYTUyNzFiMTc2OGE4MGI0ODEx
ZWMuLjA4OTRkNjIxYTJmMTUzMjI1MTI3MzY1MGI2ZTVhM2QzZWM5OTZmOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEF1ZGlvQnVzOwogY2xhc3MgTXVs
dGlDaGFubmVsUmVzYW1wbGVyOwogY2xhc3MgUHVzaFB1bGxGSUZPOwogCi11c2luZyBDcmVhdGVB
dWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKK3VzaW5nIENy
ZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gUmVmPEF1ZGlvRGVzdGluYXRpb24+
KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAvLyBBbiBBdWRpb0Rl
c3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRlZmF1bHQgb3V0cHV0IEF1ZGlvVW5pdAogY2xh
c3MgQXVkaW9EZXN0aW5hdGlvbkNvY29hIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb24sIHB1Ymxp
YyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKQEAgLTY1LDExICs2NSwxNSBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB2b2lkIHNldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24mKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4g
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKLSAgICBmcmllbmQg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0
ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGZs
b2F0KTsKKyAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVu
ZGVyKTsKKworICAgIGZyaWVuZCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgZmxvYXQpOwogICAgIAogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIuCiAgICAgdm9p
ZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBmaW5hbDsK
QEAgLTkxLDExICs5NSwxNCBAQCBwcml2YXRlOgogICAgIC8vIFJlc29sdmVzIHRoZSBidWZmZXIg
c2l6ZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBXZWJBdWRpbyBlbmdpbmUgYW5kCiAgICAgLy8gdGhl
IGNhbGxiYWNrIGZ1bmN0aW9uIGZyb20gdGhlIGFjdHVhbCBhdWRpbyBkZXZpY2UuCiAgICAgVW5p
cXVlUmVmPFB1c2hQdWxsRklGTz4gbV9maWZvOworICAgIExvY2sgbV9maWZvTG9jazsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+IG1fcmVzYW1wbGVyOwogICAg
IEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFRpbWVzdGFtcDsKIAogICAgIGZsb2F0IG1fY29udGV4
dFNhbXBsZVJhdGU7CisKKyAgICBMb2NrIG1faXNQbGF5aW5nTG9jazsKICAgICBib29sIG1faXNQ
bGF5aW5nIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmNwcAppbmRleCA4ZmRlYjZhMjQyNDg0OWNhYzE3YmJlOTBhYWU3MTJhODlhMjRkMTAwLi5j
MDVhZTZiZTYyOWRkYjNkZjY3MjI4MjkxMTFjZThiNjQwMGVlNjhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyB2b2lk
IGF1dG9BdWRpb1NpbmtDaGlsZEFkZGVkQ2FsbGJhY2soR3N0Q2hpbGRQcm94eSosIEdPYmplY3Qq
IG9iamVjdCwgZ2NoCiAgICAgICAgIGdfb2JqZWN0X3NldChHU1RfQVVESU9fQkFTRV9TSU5LKG9i
amVjdCksICJidWZmZXItdGltZSIsIHN0YXRpY19jYXN0PGdpbnQ2ND4oMTAwMDAwKSwgbnVsbHB0
cik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0
aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1
bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IG1ha2UgdXNlIG9mIGlu
cHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTYwLDcgKzYwLDcgQEAgc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lP
Q2FsbGJhY2smIGNhbGwKICAgICBpZiAobnVtYmVyT2ZPdXRwdXRDaGFubmVscyAhPSAyKQogICAg
ICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoJXUsICV1LCAlZikgLSB1
bmhhbmRsZWQgb3V0cHV0IGNoYW5uZWxzIiwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI+KGNhbGxiYWNrLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKGNhbGxiYWNrLCBzYW1w
bGVSYXRlKSk7CiB9CiAKIGZsb2F0IEF1ZGlvRGVzdGluYXRpb246OmhhcmR3YXJlU2FtcGxlUmF0
ZSgpCkBAIC0xNjUsNyArMTY1LDcgQEAgZ2Jvb2xlYW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
cjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIHJldHVybiBUUlVFOwog
fQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KCkKK3ZvaWQgQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+
JiYpPiYmKQogewogICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2YWlsYWJsZSk7CiAgICAgaWYgKCFt
X2F1ZGlvU2lua0F2YWlsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5o
CmluZGV4IGNmZTY4OTIwOGQwOTY4YTUxYThiYjFkMWU4N2Y2ZTE5ZDBmMjMxNjYuLmQ1NTEwNGM4
OGNjYmNkZmZmZjk3YzRlN2E0OTQ5ODZmOTk2YmY4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXIuaApAQCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6CiAgICAgQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAg
ICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKCk7CiAKLSAgICB2b2lkIHN0YXJ0
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQo
KT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1f
aXNQbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCA5ZGFhN2QwMTQxZDgxMDRlNGY1
YzRjMjY0OGJjOGM2YmU1MjZjMGM4Li41YTEyY2RlNGZjZGZjNTdmYWQ0MmI3ZDllOGZlNzMyMDQz
NTA5ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTQ1LDggKzQ1LDkgQEAgTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYTo6TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLAogCiBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjp+TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYSgpID0gZGVmYXVsdDsKIAotdm9pZCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNv
Y29hOjpzdGFydCgpCit2b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0
aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQog
eworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCk7CiAgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhTZWNvbmRzIHsgbV9udW1iZXJP
ZkZyYW1lc1RvUHJvY2VzcyAvIHNhbXBsZVJhdGUoKSB9KTsKICAgICBzZXRJc1BsYXlpbmcodHJ1
ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGQ0ZWFlODMzNDM1YzBhNjA0NTVlZDBiOTY5MjU2
OGM4ZWM2M2YzNmQuLmE4ZDI4YzRlZDFiYmVmZmQzMzA5NDUwZGFhZjMyOWViYTI1MzRjMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRp
b25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5oCkBAIC0zOCwxMiArMzgsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNr
OwogY2xhc3MgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSBmaW5hbCA6IHB1YmxpYyBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2EgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpIHsgcmV0dXJuIG1ha2VVbmlx
dWU8TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOyB9Cisg
ICAgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBj
YWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsK
KyAgICB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1
ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgfk1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lk
IHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZv
aWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCiAgICAgdm9pZCB0
aWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IGIyZjMzMTJjZjRiMDQ2MWI4N2ZhYWFjMzljZDQyYTA2M2U1OGFjNzMuLjFmZTkzOTg3ZWY5
NjFmZGZiZTM4ZjQ3Y2E2NzFhZjVmZGE5OGQ5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01NDQsNCArNTQ0LDkgQEAgUmVmZXJyZXJQb2xp
Y3kgV29ya2VyR2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4g
bV9yZWZlcnJlclBvbGljeTsKIH0KIAorVGhyZWFkKiBXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJs
eWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLnRocmVhZCgpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmgKaW5kZXggYmQ5Y2YxNDBkZDUyZmI4NDk4YjlmYTQxMDYwYzkzYWJmYTY4Mzg1
ZS4uOTBkZjNiNmFmM2Q2M2VjNjFhZWM5YTEyM2MwODc3ZTc5ZTM0YjI2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmgiCkBAIC01OSw3ICs2MCw3IEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xh
c3MgSURCQ29ubmVjdGlvblByb3h5OwogfQogCi1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxl
PFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzIHsKK2Ns
YXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2Nv
cGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgRXZl
bnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxpdGllcywgcHVibGljIFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdv
cmtlckdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29w
ZSgpOwpAQCAtODUsMTMgKzg2LDE1IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb24mIHN3Q2xpZW50Q29ubmVjdGlvbigpOwogI2VuZGlmCiAKLSAgICBXb3JrZXJTY3JpcHRD
b250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtl
clNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgp
OyB9CiAgICAgdm9pZCBjbGVhclNjcmlwdCgpIHsgbV9zY3JpcHQgPSBudWxscHRyOyB9CiAKICAg
ICBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3Qg
eyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlcjsgfQogCiAgICAgV29ya2VyVGhyZWFkJiB0
aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZDsgfQogCisgICAgVGhyZWFkKiB1bmRlcmx5
aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKICAgICB1c2luZyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFRhc2smJikgZmlu
YWw7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3Vz
bHkuCkBAIC0xMTksNyArMTIyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJl
ZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAotICAgIGJvb2wgaXNDbG9zaW5nKCkg
eyByZXR1cm4gbV9jbG9zaW5nOyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2Nsb3Npbmc7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjU0OGUwODQ4YmUzNTIyYjZhZDljMzI4NTMzOTc0NmM3YzM5NzQyOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgor
CituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRocmVhZDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgV1RGOjpUaHJlYWQqIHVuZGVybHlp
bmdUaHJlYWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQ2xvc2luZygpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dCgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmY5YmY4M2U5MzBkZDE2NWQ4YTMzMDQ3MDUyYWQ1NWQyMmZhZmE3OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTUnVuTG9vcFRpbWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwg
dm9pZCByZWxlYXNlSGVhcEFjY2VzcygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNxdWlyZUhl
YXBBY2Nlc3MoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRp
b24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9v
cFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJv
b2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4
IDY2ZWNkNTM2ZjgxM2QwMjljNDk3ZjFhZWE3ZjIxOWVkZmM3NWIzNzUuLmJiNjFmYzVmMmE5N2Ri
ODRiMTEzYmUyMjNjN2E3YWRjNzE5YjQ5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERh
dGEuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlICJXb3JrZXJSdW5Mb29w
LmgiCi0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaWYgVVNF
KEdMSUIpCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKICAgICBJc0ZvckRlYnVnZ2luZyBt
X2lzRm9yRGVidWdnaW5nIHsgSXNGb3JEZWJ1Z2dpbmc6Ok5vIH07CiB9OwogCi12b2lkIFdvcmtl
clJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVu
TG9vcDo6cnVuKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIFJ1
bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8p
OwogICAgIE1vZGVQcmVkaWNhdGUgbW9kZVByZWRpY2F0ZShkZWZhdWx0TW9kZSgpKTsKQEAgLTE0
MywxMyArMTQzLDEzIEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckdsb2JhbFNjb3Bl
KiBjb250ZXh0KQogICAgIHJ1bkNsZWFudXBUYXNrcyhjb250ZXh0KTsKIH0KIAotTWVzc2FnZVF1
ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9i
YWxTY29wZSYgY29udGV4dCkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6
cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmIGNvbnRleHQpCiB7
CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdn
aW5nOjpZZXMpOwogICAgIHJldHVybiBydW5Jbk1vZGUoJmNvbnRleHQsIE1vZGVQcmVkaWNhdGUg
eyBkZWJ1Z2dlck1vZGUoKSB9LCBXYWl0Rm9yTWVzc2FnZSk7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7
CiAgICAgQVNTRVJUKG1vZGUgIT0gZGVidWdnZXJNb2RlKCkpOwogICAgIFJ1bkxvb3BTZXR1cCBz
ZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwpAQCAtMTU4LDEw
ICsxNTgsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1v
ZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3Jr
ZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgTW9kZVByZWRpY2F0ZSYgcHJlZGljYXRlLCBX
YWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6
cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2Rl
UHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRNb2RlKQogewogICAgIEFTU0VSVChj
b250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVh
ZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgpID09
ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAKICAgICBKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5v
dGlmaWNhdGlvbkNhbGxiYWNrIHRpbWVyQWRkZWRUYXNrID0gV1RGOjpjcmVhdGVTaGFyZWRUYXNr
PEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uVHlwZT4oW3RoaXNdIHsKICAg
ICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgaGVyZSwgd2UganVzdCB3YW50
IHRvIGxvb3AgYXJvdW5kIHJ1bkluTW9kZQpAQCAtMTg2LDEzICsxODYsMTMgQEAgTWVzc2FnZVF1
ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUq
IGNvbnRleHQsIGNvbnMKICAgICBpZiAod2FpdE1vZGUgPT0gV2FpdEZvck1lc3NhZ2UgJiYgcHJl
ZGljYXRlLmlzRGVmYXVsdE1vZGUoKSAmJiBtX3NoYXJlZFRpbWVyLT5pc0FjdGl2ZSgpKQogICAg
ICAgICB0aW1lb3V0RGVsYXkgPSBzdGQ6Om1pbih0aW1lb3V0RGVsYXksIG1fc2hhcmVkVGltZXIt
PmZpcmVUaW1lRGVsYXkoKSk7CiAKLSAgICBpZiAoV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2Ny
aXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byogc2NyaXB0ID0gY29udGV4
dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5yZWxlYXNlSGVhcEFjY2VzcygpOwogICAg
ICAgICBzY3JpcHQtPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKHRpbWVyQWRkZWRUYXNrKTsKICAg
ICB9CiAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byB0YXNrID0g
bV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2VGaWx0ZXJlZFdpdGhUaW1lb3V0KHJlc3VsdCwg
cHJlZGljYXRlLCB0aW1lb3V0RGVsYXkpOwotICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVy
KiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBj
b250ZXh0LT5zY3JpcHQoKSkgewogICAgICAgICBzY3JpcHQtPmFjcXVpcmVIZWFwQWNjZXNzKCk7
CiAgICAgICAgIHNjcmlwdC0+cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRh
c2spOwogICAgIH0KQEAgLTIyMywxMCArMjIzLDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
V29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25z
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpydW5DbGVhbnVw
VGFza3MoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1
bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAg
ICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgp
ID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdU
aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAgIEFTU0VSVChtX21lc3NhZ2VRdWV1
ZS5raWxsZWQoKSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewpAQCAtMjYyLDcgKzI2Miw3IEBAIHZv
aWQgV29ya2VyUnVuTG9vcDo6cG9zdERlYnVnZ2VyVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrJiYgdGFzaykKICAgICBwb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgZGVidWdn
ZXJNb2RlKCkpOwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNrKFdv
cmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJm
b3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBpZiAo
KCFjb250ZXh0LT5pc0Nsb3NpbmcoKSAmJiBjb250ZXh0LT5zY3JpcHQoKSAmJiAhY29udGV4dC0+
c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgfHwgbV90YXNrLmlzQ2xlYW51cFRh
c2soKSkKICAgICAgICAgbV90YXNrLnBlcmZvcm1UYXNrKCpjb250ZXh0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKaW5kZXggYThjOWRlYmQ4MGQ4MDk5NTRhN2E5ZDY5MGY3
NzQwNmQyNTI4MjY2OC4uZWUyNmIzN2YyOTljYTY5OWMwNGMwYjFjNzQ0MTUwNDgwODcxNTdmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKQEAgLTM4LDcgKzM4LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE1vZGVQcmVkaWNhdGU7Ci0gICAgY2xh
c3MgV29ya2VyR2xvYmFsU2NvcGU7CisgICAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGU7CiAgICAgY2xhc3MgV29ya2VyU2hhcmVkVGltZXI7CiAKICAgICBjbGFzcyBXb3JrZXJSdW5M
b29wIHsKQEAgLTQ3LDEzICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5X
b3JrZXJSdW5Mb29wKCk7CiAgICAgICAgIAogICAgICAgICAvLyBCbG9ja2luZyBjYWxsLiBXYWl0
cyBmb3IgdGFza3MgYW5kIHRpbWVycywgaW52b2tlcyB0aGUgY2FsbGJhY2tzLgotICAgICAgICB2
b2lkIHJ1bihXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bihXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGVudW0gV2FpdE1vZGUgeyBXYWl0Rm9yTWVz
c2FnZSwgRG9udFdhaXRGb3JNZXNzYWdlIH07CiAKICAgICAgICAgLy8gV2FpdHMgZm9yIGEgc2lu
Z2xlIHRhc2sgYW5kIHJldHVybnMuCi0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVu
SW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSA9
IFdhaXRGb3JNZXNzYWdlKTsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5JbkRl
YnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IFN0cmlu
ZyYgbW9kZSwgV2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1
ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUm
KTsKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgICAgICBib29sIHRlcm1pbmF0ZWQo
KSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsgfQpAQCAtNzMsNyArNzMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG1vZGUo
KSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KIAogICAgICAgICBwcml2YXRlOgotICAgICAgICAg
ICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICAgICAgdm9p
ZCBwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIG1fdGFzazsKICAgICAgICAgICAgIFN0cmlu
ZyBtX21vZGU7CkBAIC04MywxMSArODMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3BTZXR1cDsKLSAgICAgICAgTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBN
b2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0
IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVkaWNh
dGUmLCBXYWl0TW9kZSk7CiAKICAgICAgICAgLy8gUnVucyBhbnkgY2xlYW4gdXAgdGFza3MgdGhh
dCBhcmUgY3VycmVudGx5IGluIHRoZSBxdWV1ZSBhbmQgcmV0dXJucy4KICAgICAgICAgLy8gVGhp
cyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgY29udGV4dCBpcyBjbG9zZWQgb3IgbG9v
cCBoYXMgYmVlbiB0ZXJtaW5hdGVkLgotICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3Jr
ZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGJvb2wgaXNCZWluZ0RlYnVnZ2VkKCkgY29u
c3QgeyByZXR1cm4gbV9kZWJ1Z0NvdW50ID49IDE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0LmNwcAppbmRleCAzZDZlMGI3YWYwMWUyMTg1ZTFjOWZmOWRiMDdmZmQzMGVkZGQyMTc4Li4z
OTA4YmRmM2EyOTZjODFiNmY0YmE4ZThlMDhlM2ZjNTgyZWU1ZTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0LmNwcApAQCAtMjgsMjcgKzI4LDc2IEBACiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKLSNpbmNsdWRlICJXb3JrbGV0T3B0
aW9ucy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV29ya2VyUnVu
TG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmts
ZXRHbG9iYWxTY29wZVByb3h5LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgor
I2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFdvcmtsZXQpOwogCi1SZWY8V29ya2xldD4gV29ya2xldDo6Y3JlYXRlKCkKK1dv
cmtsZXQ6OldvcmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0
KCZkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrbGV0KCkpOwogfQog
Ci1Xb3JrbGV0OjpXb3JrbGV0KCkKK1dvcmtsZXQ6On5Xb3JrbGV0KCkgPSBkZWZhdWx0OworCitE
b2N1bWVudCogV29ya2xldDo6ZG9jdW1lbnQoKQoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1
bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworLy8gaHR0cHM6Ly93d3cudzMu
b3JnL1RSL3dvcmtsZXRzLTEvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQordm9pZCBXb3JrbGV0Ojph
ZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkxTdHJpbmcsIFdvcmtsZXRPcHRpb25zJiYg
b3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRv
KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoaXMg
ZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBV
UkwgbW9kdWxlVVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1vZHVsZVVSTFN0cmluZyk7Cisg
ICAgaWYgKCFtb2R1bGVVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTW9kdWxlIFVSTCBpcyBpbnZhbGlkIl9zIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fcHJveGllcy5pc0VtcHR5KCkpCisgICAg
ICAgIG1fcHJveGllcy5hcHBlbmRWZWN0b3IoY3JlYXRlR2xvYmFsU2NvcGVzKCkpOworCisgICAg
YXV0byBwZW5kaW5nVGFza3MgPSBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpjcmVhdGUoKnRoaXMsIFdU
Rk1vdmUocHJvbWlzZSksIG1fcHJveGllcy5zaXplKCkpOworICAgIG1fcGVuZGluZ1Rhc2tzU2V0
LmFkZChwZW5kaW5nVGFza3MuY29weVJlZigpKTsKKworICAgIGZvciAoYXV0byYgcHJveHkgOiBt
X3Byb3hpZXMpIHsKKyAgICAgICAgcHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2Jh
bFNjb3BlKFtwZW5kaW5nVGFza3MgPSBwZW5kaW5nVGFza3MuY29weVJlZigpLCBtb2R1bGVVUkwg
PSBtb2R1bGVVUkwuaXNvbGF0ZWRDb3B5KCksIGNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50
aWFscywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAgICAgZG93bmNh
c3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5mZXRjaEFuZEludm9rZVNjcmlwdChtb2R1
bGVVUkwsIGNyZWRlbnRpYWxzLCBbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3Mp
LCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVuZGluZ1Rhc2tzKSwgZXhjZXB0aW9u
ID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbiksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUo
cGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4
Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+YWJvcnQoV1RG
TW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+ZGVjcmVtZW50Q291bnRlcigpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRl
ZmF1bHRNb2RlKCkpOworICAgIH0KK30KKwordm9pZCBXb3JrbGV0OjpmaW5pc2hQZW5kaW5nVGFz
a3MoV29ya2xldFBlbmRpbmdUYXNrcyYgdGFza3MpCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nVGFza3NTZXQuY29udGFpbnMoJnRhc2tzKSk7CisK
KyAgICBtX3BlbmRpbmdUYXNrc1NldC5yZW1vdmUoJnRhc2tzKTsKIH0KIAotdm9pZCBXb3JrbGV0
OjphZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9w
dGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK2NvbnN0IGNoYXIq
IFdvcmtsZXQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBB
ZGQgcHJvcGVyIGltcGxlbWVudGF0aW9uLgotICAgIFVOVVNFRF9QQVJBTShtb2R1bGVVUkwpOwot
ICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIHJldHVybiAiV29ya2xldCI7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaAppbmRleCBiMmJlZGM2
NTg2NWI3NGY1Zjk5NTZmMDRjZmNjYzNmODM1MTlmMmUxLi40MTY4Njc0YzczYjI5OTA5YmE2Mjk2
MjU3MjFiMzgwNTNlMjI3YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oCkBAIC0yNSwy
NyArMjUsNDUgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRl
ICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50
OworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHk7CitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rh
c2tzOwogCi1zdHJ1Y3QgV29ya2xldE9wdGlvbnM7Ci0KLWNsYXNzIFdvcmtsZXQgOiBwdWJsaWMg
UmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CitjbGFzcyBXb3Jr
bGV0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXb3JrbGV0PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0KTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdvcmtsZXQ+IGNyZWF0ZSgpOwotICAgIHZpcnR1YWwgfldvcmtsZXQoKSA9IGRlZmF1
bHQ7CisgICAgdmlydHVhbCB+V29ya2xldCgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRN
b2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMm
JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1
bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgZmluaXNoUGVuZGluZ1Rhc2tzKFdvcmtsZXRQ
ZW5kaW5nVGFza3MmKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKKworICAgIGNvbnN0IFZl
Y3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiYgcHJveGllcygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJveGllczsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2xldCgpOworICAgIGV4cGxp
Y2l0IFdvcmtsZXQoRG9jdW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFZlY3RvcjxS
ZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSA9IDA7CisK
KyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eT4+IG1fcHJveGllczsKKyAgICBIYXNoU2V0PFJlZlB0cjxXb3JrbGV0UGVuZGluZ1Rhc2tz
Pj4gbV9wZW5kaW5nVGFza3NTZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCmluZGV4IDBiNzc0YzI3NGFhZjIwZTBjYzg4Mzc3Mjcx
YzcxNmEwMGZhZjllNjEuLjI5M2NmMDZlMTU1NmU5YjU3N2EyYTRkMTk1ODhkMTY4MDZhYmVlNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCkBAIC0yNCw4ICsyNCwxMCBAQAogKi8K
IAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBHbG9i
YWw9V29ya2xldCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV29ya2xl
dCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHVuZGVmaW5lZD4gYWRkTW9kdWxl
KFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmtsZXRPcHRpb25zIG9wdGlvbnMpOwor
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3RyaW5nIG1vZHVsZVVSTCwgb3B0
aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggM2I3NTgyYWZmY2QwNGIxNDYyOTBm
M2E3NDY4NjczNGFjNjkwZmVmMi4uZmI4YmFhNWRlZmM5ZTg3NTNmMGM0MmVlY2ZmOWI2NGVlMzIz
NDAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29y
a2xldEdsb2JhbFNjb3BlLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIKQEAgLTM2LDcgKzM0LDYgQEAKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCi0jaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRD
YWxsU3RhY2suaD4KQEAgLTQ3LDEwICs0NCwyMiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9y
OwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2xldEdsb2JhbFNjb3BlKTsKIAor
V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB3aW5kb3dV
UkwpCisgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRDb250cm9sbGVyPih0
aGlzKSkKKyAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSkK
KyAgICAsIG1fdXJsKHdpbmRvd1VSTCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbFdvcmts
ZXRHbG9iYWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1
bHQsIGFkZFJlc3VsdCk7CisKKyAgICBzZXRTZWN1cml0eU9yaWdpblBvbGljeShTZWN1cml0eU9y
aWdpblBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNvcHlSZWYoKSkpOworfQorCiBXb3JrbGV0
R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxK
U0M6OlZNPiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IG1fZG9jdW1lbnQo
bWFrZVdlYWtQdHIoZG9jdW1lbnQpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcj4oV1RGTW92ZSh2bSksIHRoaXMpKQogICAgICwgbV90b3BPcmlnaW4o
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwoY29kZS51cmwoKSkK
ICAgICAsIG1fY29kZShXVEZNb3ZlKGNvZGUpKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxs
V29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKQEAgLTYxLDcgKzcwLDcgQEAgV29y
a2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBS
ZWY8SlNDOjpWTT4mJiB2bSwgU2MKICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgpKTsKIAogICAg
IHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90
b3BPcmlnaW4uY29weVJlZigpKSk7Ci0gICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VV
bmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBtX2NvZGUudXJsKCkgfSwgKnRoaXMp
KTsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJp
dHlQb2xpY3k+KFVSTCB7IHRoaXMtPnVybCgpIH0sICp0aGlzKSk7CiB9CiAKIFdvcmtsZXRHbG9i
YWxTY29wZTo6fldvcmtsZXRHbG9iYWxTY29wZSgpCkBAIC0xMTMsNyArMTIyLDggQEAgU3RyaW5n
IFdvcmtsZXRHbG9iYWxTY29wZTo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2
b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZXZhbHVhdGUoKQogewotICAgIG1fc2NyaXB0LT5ldmFs
dWF0ZShtX2NvZGUpOworICAgIGlmIChtX2NvZGUpCisgICAgICAgIG1fc2NyaXB0LT5ldmFsdWF0
ZSgqbV9jb2RlKTsKIH0KIAogYm9vbCBXb3JrbGV0R2xvYmFsU2NvcGU6OmlzSlNFeGVjdXRpb25G
b3JiaWRkZW4oKSBjb25zdApAQCAtMTM1LDcgKzE0NSw3IEBAIFVSTCBXb3JrbGV0R2xvYmFsU2Nv
cGU6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBGb3JjZVVURjgpIGNvbnN0CiB7CiAg
ICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwotICAgIHJldHVybiBV
UkwobV9jb2RlLnVybCgpLCB1cmwpOworICAgIHJldHVybiBVUkwodGhpcy0+dXJsKCksIHVybCk7
CiB9CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGlu
ZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFj
aykKQEAgLTE3MSw1ICsxODEsMTEgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xldEdsb2JhbFNjb3Bl
OjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJuIFJlZmVycmVyUG9saWN5OjpOb1Jl
ZmVycmVyOwogfQogCit2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3Jp
cHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0
aW9uLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
R2xvYmFsU2NvcGUuaAppbmRleCAyNWQ1NDlhYzRhMGFhNmZmNzUyODc1NWQ3MDQ3YzgxNGVlN2Rj
NDA0Li45ODE0MTU5ZGUyYjUwM2E4MDhjODA4NzA0MmY2NzM1MzY3YmZmMzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMjYsMzAgKzI2LDMy
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgV29ya2VyRXZlbnRMb29wOwotY2xhc3MgV29y
a2xldFNjcmlwdENvbnRyb2xsZXI7CiAKIGVudW0gV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmll
clR5cGUgeyB9OwogdXNpbmcgV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9IE9iamVjdElk
ZW50aWZpZXI8V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1jbGFzcyBXb3Jr
bGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGU+LCBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2xldEdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9i
YWxTY29wZSgpOwpAQCAtNTcsMTEgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB1c2luZyBXb3JrbGV0
R2xvYmFsU2NvcGVzU2V0ID0gSGFzaFNldDxjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUqPjsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV29ya2xldEdsb2JhbFNjb3Blc1NldCYgYWxsV29ya2xl
dEdsb2JhbFNjb3Blc1NldCgpOwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAg
dmlydHVhbCBib29sIGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICB2aXJ0dWFsIGJvb2wg
aXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5k
aWYKIAogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29wKCkgZmluYWw7CiAKLSAgICBj
b25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZS51cmwoKTsgfQorICAg
IGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91cmw7IH0KIAogICAgIHZv
aWQgZXZhbHVhdGUoKTsKIApAQCAtNzAsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9Cisg
ICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2Ny
aXB0LmdldCgpOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsKIApAQCAtNzksNiArODYsMTAg
QEAgcHVibGljOgogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCkgZmluYWwg
eyByZXR1cm4gbnVsbHB0cjsgfQogCisgICAgLy8gV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
CisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bnVsbHB0cjsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9p
c0Nsb3Npbmc7IH0KKwogICAgIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNTZWN1cmVDb250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KIApAQCAtODYsNyArOTcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIHByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogCisgICAgdm9pZCBmZXRjaEFuZEludm9r
ZVNjcmlwdChjb25zdCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVjdGVkOgorICAg
IFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCk7CiAgICAgV29ya2xldEds
b2JhbFNjb3BlKERvY3VtZW50JiwgUmVmPEpTQzo6Vk0+JiYsIFNjcmlwdFNvdXJjZUNvZGUmJik7
CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSYpID0gZGVs
ZXRlOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShXb3JrbGV0R2xvYmFsU2NvcGUmJikgPSBkZWxl
dGU7CkBAIC0xMzYsOCArMTUwLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50
TG9vcD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91
cD4gbV9kZWZhdWx0VGFza0dyb3VwOwogCisgICAgVVJMIG1fdXJsOwogICAgIEpTQzo6UnVudGlt
ZUZsYWdzIG1fanNSdW50aW1lRmxhZ3M7Ci0gICAgU2NyaXB0U291cmNlQ29kZSBtX2NvZGU7Cisg
ICAgT3B0aW9uYWw8U2NyaXB0U291cmNlQ29kZT4gbV9jb2RlOworICAgIGJvb2wgbV9pc0Nsb3Np
bmcgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtMTQ1LDQgKzE2
MSwzIEBAIHByaXZhdGU6CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6Oldv
cmtsZXRHbG9iYWxTY29wZSkKIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzV29ya2xldEds
b2JhbFNjb3BlKCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKaW5kZXggZDc1
OWYwY2UxZDE2Zjg2OTE4NjAxMjc3NmYwZGIxNmI2MWJhYTQ3OC4uYmYwNzEzODRhM2YzMDhmZjZj
NjQ1Yzk1ODRjYjNiMWNiOWU1ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0R2xvYmFsU2NvcGUuaWRsCkBAIC0yNiw4ICsyNiw2IEBACiBbCiAgICAgQ3VzdG9tUHJv
eHlUb0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9V29ya2xldCwKLSAgICBFbmFibGVkQXRSdW50aW1l
PUNTU1BhaW50aW5nQVBJLAotICAgIENvbmRpdGlvbmFsPUNTU19QQUlOVElOR19BUEksCiAgICAg
SlNMZWdhY3lQYXJlbnQ9SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLAogICAgIEltcGxpY2l0VGhp
cywKICAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
YzVkOTFjYzdkMDI0MjBiNWZhZmYyMTkxYzBlZWY4ZmY5YTVkN2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldFBlbmRpbmdUYXNrczsKKworY2xhc3MgV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xldEds
b2JhbFNjb3BlUHJveHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVU
b1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0
IFN0cmluZyYgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29ya2xldE1lc3Nh
Z2luZ1Byb3h5KCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZmZlNWQ3NjFhZjQ2ZjI2MTQxMTc5MDRhYzEwNGMzMDQ5MTE0NWQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tz
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBlbmRpbmdUYXNrczo6V29ya2xl
dFBlbmRpbmdUYXNrcyhXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
JiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICA6IG1fd29ya2xldChtYWtlV2Vha1B0cih3b3Jr
bGV0KSkKKyAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwgbV9jb3VudGVy
KGNvdW50ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKK30KKwordm9pZCBXb3Jr
bGV0UGVuZGluZ1Rhc2tzOjphYm9ydChFeGNlcHRpb24mJiBleGNlcHRpb24pCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY291bnRlciA9IC0xOworICAgIG1fcHJvbWlzZS5yZWplY3QoV1RG
TW92ZShleGNlcHRpb24pKTsKKyAgICBpZiAobV93b3JrbGV0KQorICAgICAgICBtX3dvcmtsZXQt
PmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7Cit9CisKK3ZvaWQgV29ya2xldFBlbmRpbmdUYXNr
czo6ZGVjcmVtZW50Q291bnRlcigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKwor
ICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAgIC0tbV9jb3Vu
dGVyOworICAgIGlmICghbV9jb3VudGVyKSB7CisgICAgICAgIG1fcHJvbWlzZS5yZXNvbHZlKCk7
CisgICAgICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgICAgICBtX3dvcmtsZXQtPmZpbmlzaFBl
bmRpbmdUYXNrcygqdGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzMzZDZiYmFiZTBlOWI5M2UyODNhMzI4NjcxNWNhODlkYzI2YzA5YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaApAQCAt
MCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0OworCisvLyBodHRwczovL2RyYWZ0cy5j
c3MtaG91ZGluaS5vcmcvd29ya2xldHMvI3BlbmRpbmctdGFza3Mtc3RydWN0CitjbGFzcyBXb3Jr
bGV0UGVuZGluZ1Rhc2tzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtsZXRQZW5k
aW5nVGFza3M+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtsZXRQZW5kaW5nVGFza3M+
IGNyZWF0ZShXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlLCBpbnQgY291bnRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtsZXRQZW5kaW5nVGFza3Mod29ya2xldCwgV1RGTW92ZShwcm9taXNlKSwgY291bnRlcikpOwor
ICAgIH0KKworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uJiYpOworICAgIHZvaWQgZGVjcmVtZW50
Q291bnRlcigpOworCitwcml2YXRlOgorICAgIFdvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xldCYs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmLCBpbnQgY291bnRlcik7CisKKyAgICBXZWFrUHRy
PFdvcmtsZXQ+IG1fd29ya2xldDsKKyAgICBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4gbV9wcm9t
aXNlOworICAgIGludCBtX2NvdW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHAKaW5kZXggMjBhNmY4NTYxODU4YWRmYmUyZTJiYzE4ZWJmNzE1MGI5N2FkMTRmOC4uMTdkZjVl
MWYzY2YwNjU3MTRiY2VmNzVlZDg1ZmNhZDUzOGY2ZTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjYsOCArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1ZGUgIkpTQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0V2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKQEAgLTU2LDYg
KzU1LDExIEBAIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cihSZWY8Vk0+JiYgdm0sIFdvcmtsZXRHbG9iYWxTY29wCiAgICAgSlNWTUNsaWVudERhdGE6Omlu
aXROb3JtYWxXb3JsZChtX3ZtLmdldCgpKTsKIH0KIAorV29ya2xldFNjcmlwdENvbnRyb2xsZXI6
OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSogd29ya2xldEdsb2Jh
bFNjb3BlKQorICAgIDogV29ya2xldFNjcmlwdENvbnRyb2xsZXIoVk06OmNyZWF0ZSgpLCB3b3Jr
bGV0R2xvYmFsU2NvcGUpCit7Cit9CisKIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjp+V29ya2xl
dFNjcmlwdENvbnRyb2xsZXIoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKCkpOwpAQCAt
MTQ1LDEwICsxNDksMTkgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlw
dCgpCiAgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCiAgICAgICAgIHJldHVybjsKIAor
I2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGlmIChpczxQYWludFdvcmtsZXRHbG9i
YWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7CiAgICAgICAgIGluaXRTY3JpcHRXaXRo
U3ViY2xhc3M8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVByb3RvdHlwZSwgSlNQYWludFdvcmts
ZXRHbG9iYWxTY29wZSwgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgaWYgKGlzPEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsKKyAgICAgICAg
aW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlUHJvdG90eXBl
LCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLCBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4oKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CkBAIC0xOTYsNSArMjA5LDYyIEBAIHZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6
OnNldEV4Y2VwdGlvbihKU0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uKQogICAgIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOwogfQogCit2b2lkIFdv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZWxlYXNlSGVhcEFjY2VzcygpCit7CisgICAgbV92bS0+
aGVhcC5yZWxlYXNlQWNjZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6
OmFjcXVpcmVIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLmFjcXVpcmVBY2Nlc3MoKTsK
K30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWRkVGltZXJTZXROb3RpZmljYXRp
b24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFj
aykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGltZXIqIHRpbWVy
KSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRp
bWVyLT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsKKworICAgIHBy
b2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nl
c3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NU
aW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQgV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29w
VGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgYXV0byBw
cm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVyKiB0aW1lcikgeworICAgICAgICBpZiAo
IXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aW1lci0+cmVtb3ZlVGltZXJT
ZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisKKyAgICBwcm9jZXNzVGltZXIobV92
bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+
aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+ZGVm
ZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
OjpzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCkKK3sKKyAgICBpZiAobV9pc1Rlcm1pbmF0
aW5nRXhlY3V0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB7CisgICAgICAgIC8vIFRoZSBt
dXRleCBwcm92aWRlcyBhIG1lbW9yeSBiYXJyaWVyIHRvIGVuc3VyZSB0aGF0IG9uY2UKKyAgICAg
ICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkg
d2lsbAorICAgICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBsZXhpY2FsR2xvYmFsT2Jq
ZWN0IHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgICAgICBtX2lzVGVy
bWluYXRpbmdFeGVjdXRpb24gPSB0cnVlOworICAgIH0KKyAgICBtX3ZtLT5ub3RpZnlOZWVkVGVy
bWluYXRpb24oKTsKK30KKworYm9vbCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aXNUZXJtaW5h
dGluZ0V4ZWN1dGlvbigpIGNvbnN0Cit7CisgICAgLy8gU2VlIGNvbW1lbnRzIGluIHNjaGVkdWxl
RXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdlLgorICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgIHJldHVybiBt
X2lzVGVybWluYXRpbmdFeGVjdXRpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgKaW5kZXggZTM2ZDJhMjQyYmY1NDY0ZmEyN2NmM2RhOWFiNTI4NGYwMDA0ZDZlZS4uNmQ0
M2NlNWY5ZmZkMmE3MGFmMGJmNmU1YWVlNTRjZDhmYWM3MmYyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNSw4ICsyNSw3
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KKyNp
bmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxv
b3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpAQCAtNDYsOSAr
NDUsMTEgQEAgY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrbGV0R2xvYmFs
U2NvcGU7CiBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIAotY2xhc3MgV29ya2xldFNjcmlw
dENvbnRyb2xsZXIgeworLy8gRklYTUU6IFdlIHNob3VsZCBzaGFyZSBtb3JlIGNvZGUgd2l0aCBX
b3JrZXJTY3JpcHRDb250cm9sbGVyLgorY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXIgOiBw
dWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoV29ya2xldFNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3JrbGV0
R2xvYmFsU2NvcGUqKTsKICAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8SlNDOjpWTT4m
JiwgV29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgfldvcmtsZXRTY3JpcHRDb250cm9sbGVyKCk7
CiAKQEAgLTY0LDYgKzY1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpc2FibGVXZWJBc3NlbWJseShjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkg
ZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOworCisgICAgdm9pZCBh
ZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFsOwor
CisgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAgYm9vbCBpc1Rl
cm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGV2YWx1YXRlKGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9
IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5h
a2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJu
ZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKQEAgLTg3LDcgKzk3LDggQEAgcHJpdmF0
ZToKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUqIG1fd29ya2xldEdsb2JhbFNjb3BlOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXb3JrbGV0Q29uc29sZUNsaWVudD4gbV9jb25zb2xlQ2xpZW50OwogICAg
IEpTQzo6U3Ryb25nPEpTV29ya2xldEdsb2JhbFNjb3BlPiBtX3dvcmtsZXRHbG9iYWxTY29wZVdy
YXBwZXI7CisgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrOworICAg
IGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5k
ZXggNmExMDFjMzk1OTNjYzRjMTU0Yzc0NWY2ZDc5NzM3YTAyYTkyM2Y2ZC4uMGI5YWIxZGNlMzRh
NTIwZDgyZTJmYWQ1ZjVkMDZhODY5ZWY3NGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcCgpOwogICAgIH0K
IAotICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lk
IHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCh7IH0pOyB9CiAgICAgdm9pZCBzdG9wKCkg
eyBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7IH0KICAgICBib29sIGlzUGxheWluZygpIHsgcmV0dXJu
IG1fZGVzdGluYXRpb24tPmlzUGxheWluZygpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVzUGVyQnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+ZnJhbWVzUGVyQnVmZmVyKCkgOyB9
CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ciBtX2lkOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0
aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFJl
ZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxT
aHV0ZG93bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCAw
Njk0NWJhZmQ1ZDE4OWM3YTBmOWM3MjQwMmJiODg5ZGM4MDdmNmY0Li44MjEzODAwYjlmMTBjNTgy
NjBlMDdhNzkwZjdjYjIwYTdlMGVhMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuY3BwCkBAIC00MywxMCArNDMsMTAgQEAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRp
b0J1czsKIHVzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
OwogdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOwogCi1z
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKK1JlZjxBdWRpb0Rlc3RpbmF0
aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
IGNhbGxiYWNrLAogICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKQogewotICAgIHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eT4oY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVs
cywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KGNhbGxiYWNrLCBpbnB1dERldmlj
ZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBs
ZVJhdGUpKTsKIH0KIAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCkBAIC03Nyw4ICs3Nyw5IEBA
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFy
dCgpCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQoRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CisgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklE
KSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFy
dEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CkBAIC04OSwxOSArOTAs
MzEgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCiAgICAgICAgIE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRp
b246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFk
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9CdXNEYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8g
RklYTUU6IFRoaXMgZG9lcyByZW5kZXJpbmcgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gQXVkaW9X
b3JrbGV0IGlzIG5vdCBhY3RpdmUsIHdoaWNoIGlzIGxpa2VseSBub3QgYSBnb29kIGlkZWEuCisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZyYW1l
c1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXpl
KCkpOwogICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0YS5j
aGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZhbHNl
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZm
ZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAo
ZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0Rh
dGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVz
LmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0cHV0
UG9zaXRpb24pOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBhdXRvIGRvUmVuZGVy
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9CdXMgPSBXVEZN
b3ZlKGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJv
Y2Vzcywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb25dIHsKKyAg
ICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vz
cywgb3V0cHV0UG9zaXRpb24pOworICAgIH07CisgICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZCkgeworICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVuZGVyID0gV1RG
TW92ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb1JlbmRlcigpOworICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIH0p
OworICAgIH0gZWxzZSB7CisgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
ZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmgKaW5kZXggYWRhNmZlZWZmMzc0MzBmM2M0ZGQzN2YxM2M3ZTNhNGU3NjZhMzlkYS4u
OTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3ZTE4ZWNmYjVhYTVmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBB
dWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogICAgIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9
IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVm
PEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcm
IGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1
dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIH5SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkoKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIC8vIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24KLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYg
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lzUGxheWluZzsg
fQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NhbXBs
ZVJhdGU7IH0KQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2ZyYW1l
c1BlckJ1ZmZlciB7IDAgfTsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBt
X2Rlc3RpbmF0aW9uSUQ7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07CisgICAgRnVu
Y3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDJlODYxYTFl
NGUzMWUxNDc4MmEyYjllODMxOThjMTY3YTU5NDYxMTMuLmQ1YWVmMTUzNGFkMjM2NWQyMTM3YTE3
YjZmNmQ0NGUxZWY4NTE5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtNDUsNyArNDUsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIFdlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0ZWd5KCkgPSBk
ZWZhdWx0OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLXN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0
aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwKK1JlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICB1bnNpZ25lZCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNh
bXBsZVJhdGUpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAppbmRleCA4MTdj
NGMyOWIxNzMyZjQ1ZjkwZTIxNTVkNjVjZWU4NDdjMTdiZWUyLi42YjdiOWNlNjAzYTg3MzllNzFk
OTA0NzVmY2M3ODcyNjhmNmQ5ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtMzksNyArMzksNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJD
b3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAgIFJlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCiAgICAg
ICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KSBvdmVycmlkZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tCmluZGV4IGZhZjkzYjczYTJiMDE0MTAzODA1YTVjYzZiY2E3YjY1M2E2NTI3
YjcuLmViYmIzYmVhNmVkYmI0N2JjYjRlMmQwYjI5N2ZjZDA1ZWJhNjMyOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTY5LDcgKzY5LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFz
cyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0
ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ss
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUo
Y2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAppbmRleCBkZjRhMWY3ODUwNGRiZTIzMGE5NzdlOTdmZDI1OWQyNGU0ZjkyMDMxLi5lMDM0MjNk
NzUzY2IxOTgwZWUzZWI4ODkyZmEyODUxZWU0OTYyNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFzcyBXZWJNZWRp
YVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0ZToKICNpZiBF
TkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBj
cmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0
cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVk
aW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlu
cHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5z
aWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ss
IGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggNGQ2M2Y0MGNmZWQ3NzJhNTZjMjU0YzA1MzEwNzMyNWEyZDlhYjZlMy4uNzQ2
MTlkZTQ4ZTYxNDFhZDdkOWJlZDI2YzAxNjdmODFlMTVkOWI0ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODM4LDYgKzgzOCw3IEBAIHN0YXRpYyB2
b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNl
cykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdo
dEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NJbmRpdmlkdWFsVHJhbnNm
b3JtUHJvcGVydGllc0VuYWJsZWQ6WUVTXTsKKyAgICBbcHJlZmVyZW5jZXMgc2V0QXVkaW9Xb3Jr
bGV0RW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVzdC4KQEAgLTkz
MSw3ICs5MzIsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKCkKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJBdWRpb0VuYWJsZWQ6WUVTXTsKICAg
ICBbcHJlZmVyZW5jZXMgc2V0TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZDpZRVNdOwot
ICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CiAgICAgW3ByZWZl
cmVuY2VzIHNldE1lZGlhU291cmNlRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRT
b3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZDpZRVNdOwogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMzFhZWMzODJlN2JhM2EzYWJmOWYyNzEyMmZiODRlMjA1
Nzg4MDdjNC4uMWQwOTEzYjRlZjA1OWE0ZTFlNzkwNmM1ZWI0OWRlZGI2NjQ2NDU5NSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFz
cyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAg
ICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9k
ZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lf
ZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNh
dGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVu
dGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5k
ZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3df
Y29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBk
ZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBh
dWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0ZW1wZmlsZS5t
a3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihpbnB1dF9kaXJl
Y3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0
KGlucHV0X2ZpbGUpCkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAg
ICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywg
c2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAg
ICAgJy0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmtsZXRnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlJywgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsCiAgICAgICAgICAgICAgICAnLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywg
dGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tdmFs
aWRhdGVBZ2FpbnN0UGFyc2VyJ10KIApAQCAtMjAxLDYgKzIwMiw3IEBAIGNsYXNzIEJpbmRpbmdz
VGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAg
ICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBwYWludHdvcmtsZXRnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsJworICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUgPSAnQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAg
ICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0JpbmRpbmdUZXN0
R2xvYmFsQ29uc3RydWN0b3JzLmlkbCcKIAogICAgICAgICB3b3JrX2RpcmVjdG9yeSA9IHRlbXBm
aWxlLm1rZHRlbXAoKQpAQCAtMjEzLDkgKzIxNSwxMCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgog
ICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5w
YXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlu
cHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSkKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3Mu
cGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBp
bnB1dF9kaXJlY3RvcnksIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUp
CiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3Mu
cGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBp
bnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSkKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUg
PSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBl
bHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBv
cy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNl
IGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkK
IAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0
X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21h
a2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVf
Y29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5j
eShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1l
bnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwg
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUp
OgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBhIHN1cHBsZW1lbnRhbCBk
ZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUod29ya19kaXJlY3Rv
cnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzNSw2ICsyMzgsOCBAQCBjbGFzcyBCaW5k
aW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAg
ICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtf
ZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZh
bHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3Bl
Jywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFz
c2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xv
YmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFz
c2VkID0gRmFsc2UKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410234</attachid>
            <date>2020-10-01 08:24:18 -0700</date>
            <delta_ts>2020-10-01 09:42:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20201001082417.patch</filename>
            <type>text/plain</type>
            <size>166549</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1OWRlYjlhYjVl
ZjhiZTYzMzZhOWMzYmIzOTYxZjdiYjNiOTRmYy4uZDM0NDIwNDI0N2U0YmY1YzUzNTQwMWQ3MDVm
YmMxMTFiMzJkZjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gTWFrZSBFeHBvc2VkIG1h
bmRhdG9yeSBmb3IgSURMIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNk
ZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uM2FmOWZmN2U2ZDFhMmRkZGMxODgwYmM3MDI4NGNmY2Ji
NWE4ZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVy
ZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdo
YXQgd2FzIGRvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgaXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVk
LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlh
U3RyYXRlZ3kuaDoKKwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2Nj
YXNpb25hbGx5IGNyYXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThm
ZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2lj
IGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbUHJlZmVyZW5jZXNdIEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1
cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzExN2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4
NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEwMjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmts
ZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdh
Y3kgc2hvdWxkIGNhbGwgUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2Jh
ODkzZjk3Li5hM2UxZTYxZGJjZDExNWRkMmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFi
bGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9X
b3JrbGV0IEFQSSIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAg
Y29uZGl0aW9uOiBFTkFCTEUoV0VCX0FVRElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0
TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVl
NDYzNTU0NmY3NmNmOTBlLi4xOTQzODAyM2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYs
NiArMTc2Nyw3IEBAIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChX
ZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJRVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFD
RV9JTkNMVURFX0RJUkVDVE9SSUVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMsOCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmlu
ZGluZ3MKICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAg
ICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAt
LXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfSkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5k
aW5ncykKIAogaWYgKEVOQUJMRV9XRUJJTlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFk
Y2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVk
MjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtMzMwLDYgKzMzMCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGEx
M2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTEsNCArMSw1IEBACiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhj
ZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJh
dGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRp
YVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXVkaW9UcmFja01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1
OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4yYzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYy
MDYwNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJ
Q0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydQogU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAogUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1QID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNf
RklMRSA9ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApA
QCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkKICMKIElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4s
JSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVS
TlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAk
KEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5D
SUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RF
UEVOREVOQ0lFUykKIAkkKGZvcmVhY2ggZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+
JChJRExfRklMRVNfVE1QKSQoTkwpKQotCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1f
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJ
TEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAt
LWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdp
bmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
REVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNU
UlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9N
QUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXBy
b2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykg
TEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkg
LS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNw
YWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0
cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVE
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxF
U19UTVApCiAKIEpTJS5jcHAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQo
SURMX0FUVFJJQlVURVNfRklMRSkgJChJRExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVf
QU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMy
MmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmVi
ZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVk
QXRSdW50aW1lPUF1ZGlvV29ya2xldCwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRh
YmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5
MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMuLmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0
NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldC5jcHAKQEAgLTMxLDE1ICszMSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1
ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1JlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigq
bmV3IEF1ZGlvV29ya2xldChkb2N1bWVudCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiB3b3JrbGV0OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xl
dChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitW
ZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7
CisgICAgLy8gV2ViQXVkaW8gdXNlcyBhIHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJu
IHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVk
aW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQoKQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1
ZGlvV29ya2xldDo6cHJveHkoKSBjb25zdAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5w
cm94aWVzKCk7CisgICAgaWYgKHByb3hpZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHBy
b3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1
ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQwNTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRk
NDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaApAQCAtMzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1
YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3Jl
YXRlKCk7CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
CisgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3Vt
ZW50Jik7CisKKyAgICAvLyBXb3JrbGV0LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNj
b3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmlkbAppbmRleCBiYzVlYThmMGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3
Li44MGM2YTcyNDAxODNjNDc1NzQ2MjljODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsy
OCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0
dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAg
ICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJl
Q29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyNjBlMjZmZDE4ODhh
NmU0Yzk1ZTc4OTQ1NjZkOTk3ZjYzNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSk7CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShB
dWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCisgICAgOiBXb3JrbGV0R2xvYmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwpCisg
ICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cit9
CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSA9
IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlpbmdU
aHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJkMjMz
YWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVjdCBX
b3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0IFdv
cmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7Cisg
ICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1bmRl
cmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
KTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JF
R0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJu
IGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcwOTJh
NGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRp
b1dvcmtsZXQsCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb05h
dGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVF
eG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblByb3Rv
dHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNlIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJbXBs
ZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcy
MTYxNGJiY2EyYmM5YTA1ZmIwZTk0YmFmMWNlYmI2OGM5M2FhMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVESU8p
CisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUgIkF1
ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmtsZXQobWFr
ZVdlYWtQdHIod29ya2xldCkpCisgICAgLCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3JrbGV0VGhy
ZWFkOjpjcmVhdGUoeyB3b3JrbGV0LmRvY3VtZW50KCktPnVybCgpIH0pKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dvcmtsZXRUaHJlYWQtPnN0YXJ0KCk7Cit9CisK
K0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7CisgICAgbV93b3JrbGV0VGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1vZGUpOworICAgIHJldHVybiB0
cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhN2FkZjRmMjgzODAz
YWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldDsKK2NsYXNzIEF1ZGlvV29ya2xldFRo
cmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgOiBwdWJsaWMgV29ya2xl
dEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSh3b3Jr
bGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCk7CisKKyAg
ICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRoZSBtYWluIHRocmVhZCB0byBwb3N0IHRhc2sg
YmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0
cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBXZWFr
UHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0OworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+
IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGUuaWRsCmluZGV4IDU2MjcxNDg2NjNmMDQyMThiMWU1NTA1MTc1YjA0OTVhNTQ2
OTEyMDYuLjM0MGI4Y2FiMWQyNDM0MGY5YTY2N2I0ZWE3NTJiYjVjN2YyYzMzMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlk
bApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAg
IEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVk
aW9Xb3JrbGV0LAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
LAogICAgIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKaW5kZXggYTllMTliNjk1
ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5ZjExZjkwNS4uODcxYWVlMDAwZjhkNTBlYzRjMzA0NTcx
OTdmNWIyYjQyZjA0ZDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKQEAgLTI4LDcgKzI4LDcg
QEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5n
PUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwKIF0gZGlj
dGlvbmFyeSBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAg
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHMgPSAxOwogICAgIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTc3ZjM5OTQ0ZjJiZWNi
NzY4Yzg5NTZjYWY1ZWVhMmFkODhhMGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9X
b3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgor
CisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRl
cnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJz
IHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVkQ29weSgpCisgICAgfTsKK30KKworQXVkaW9X
b3JrbGV0VGhyZWFkOjpBdWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCisgICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycy5pc29sYXRlZENvcHko
KSkKK3sKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0KCkKK3sKKyAgICBhdXRv
IGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
ayk7CisKKyAgICBSZWY8VGhyZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTog
QXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsKKyAgICAgICAgd29ya2xldFRocmVhZCgpOworICAgIH0s
IFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICAvLyBGb3JjZSB0aGUgVGhyZWFkIG9iamVjdCB0byBi
ZSBpbml0aWFsaXplZCBmdWxseSBiZWZvcmUgc3RvcmluZyBpdCB0byBtX3RocmVhZCAoYW5kIGJl
Y29taW5nIHZpc2libGUgdG8gb3RoZXIgdGhyZWFkcykuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVu
Y2UoKTsKKyAgICBtX3RocmVhZCA9IFdURk1vdmUodGhyZWFkKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJlYWQoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpOworCisjaWYgVVNFKEdMSUIpCisgICAgR1JlZlB0cjxHTWFpbkNvbnRl
eHQ+IG1haW5Db250ZXh0ID0gYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBn
X21haW5fY29udGV4dF9wdXNoX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXI7Cisg
ICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29y
a2xldEdsb2JhbFNjb3BlTG9jayk7CisgICAgICAgIG1fd29ya2xldEdsb2JhbFNjb3BlID0gQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZSgqdGhpcywgbV9wYXJhbWV0ZXJzKTsKKworICAg
ICAgICBzY3JpcHRDb250cm9sbGVyID0gbV93b3JrbGV0R2xvYmFsU2NvcGUtPnNjcmlwdCgpOwor
CisgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CisgICAgICAgICAgICAvLyBU
aGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0
byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCisgICAgICAgICAgICAv
LyBmb3JiaWRFeGVjdXRpb24oKSBjb3VsZG4ndCBiZSBjYWxsZWQgZnJvbSBzdG9wKCkuCisgICAg
ICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5zY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7
CisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJ1bkV2ZW50TG9vcCgpOworCisjaWYgVVNFKEdMSUIpCisgICAg
Z19tYWluX2NvbnRleHRfcG9wX3RocmVhZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNl
bmRpZgorCisgICAgUmVmUHRyPFRocmVhZD4gcHJvdGVjdG9yID0gbV90aHJlYWQ7CisKKyAgICBB
U1NFUlQobV93b3JrbGV0R2xvYmFsU2NvcGUtPmhhc09uZVJlZigpKTsKKworICAgIFJlZlB0cjxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGU7CisgICAg
eworICAgICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhh
dCB3ZSBkb24ndCBjaGFuZ2UgbV93b3JrZXJHbG9iYWxTY29wZQorICAgICAgICAvLyB3aGlsZSBX
b3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNjZXNzaW5nIGl0LgorICAgICAgICBhdXRvIGxvY2sgPSBo
b2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAg
ICAgICAgLy8gRGVsYXkgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBXb3JrZXJHbG9iYWxTY29wZSBj
b250ZXh0IHVudGlsIGFmdGVyIHdlJ3ZlIHVubG9ja2VkIHRoZQorICAgICAgICAvLyBtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2VyR2xvYmFsU2NvcGVNdXRleC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVz
ZSBkZXN0cnVjdGluZyB0aGUKKyAgICAgICAgLy8gY29udGV4dCB3aWxsIHRyaWdnZXIgdGhlIG1h
aW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5zdCB1cyB0byBkZWxldGUgdGhlIFdvcmtlclRocmVhZAor
ICAgICAgICAvLyBvYmplY3QsIGFuZCB0aGUgV29ya2VyVGhyZWFkIG9iamVjdCBvd25zIHRoZSBt
dXRleCB3ZSBuZWVkIHRvIHVubG9jayBhZnRlciB0aGlzLgorICAgICAgICB3b3JrbGV0R2xvYmFs
U2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUobV93b3JrbGV0R2xvYmFsU2NvcGUpOworICAgIH0KKwor
ICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0aGUgY29udGV4dCwgd2hp
Y2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCisgICAgLy8gV2UgY2Fubm90
IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3Ro
ZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95IHRoZW0uCisgICAgd29y
a2xldEdsb2JhbFNjb3BlVG9EZWxldGUgPSBudWxscHRyOworCisgICAgLy8gU2VuZCB0aGUgbGFz
dCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJlIERlcmVmJ2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KV0geyB9KTsKKworICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJlYWR5IGRlc3Ry
b3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBhY2Nlc3MgInRoaXMiLgor
ICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpy
dW5FdmVudExvb3AoKQoreworICAgIC8vIERvZXMgbm90IHJldHVybiB1bnRpbCB0ZXJtaW5hdGVk
LgorICAgIG1fcnVuTG9vcC5ydW4obV93b3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFk
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWUyNzAyYzk4ZmRmODNmOTc1Mjk0NGE0NTBjOTM0YWM4NTM3OTQ2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CisKK3N0cnVjdCBXb3JrbGV0UGFyYW1l
dGVycyB7CitwdWJsaWM6CisgICAgVVJMIHdpbmRvd1VSTDsKKworICAgIFdvcmtsZXRQYXJhbWV0
ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFk
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRocmVhZD4geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVhdGUoY29uc3QgV29y
a2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAgIH0KKworICAgIHZv
aWQgc3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1
bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIHZv
aWQgd29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAg
V29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRlcnMgbV9wYXJhbWV0
ZXJzOworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFs
U2NvcGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9j
azsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUzMDMwN2QyMTA5NDRm
M2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwogICAgICwgbV9sb2dn
ZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRl
bnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUo
KSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAg
LCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7CiAgICAgLy8gQWNj
b3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZp
Z2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250
ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscwogICAgICwg
bV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVl
TG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0Ojpj
cmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkp
CiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuaWRsCmluZGV4IGRmOTM1YTQwOGY0Y2IwNDNhN2Q4OTdkYjYzNzNiNDE0
NzdkOGQ3NDguLjZjNTVlNmRlMWRiYjQ4YjhkMDUyYjAzMzdjYjA5MTRkOTYwNTA5YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbApAQCAtNDIsNyArNDIsNyBAQAogICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRv
IHRoaXMgbGlzdGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlz
dGVuZXI7CiAKLSAgICBbU2FtZU9iamVjdCwgU2VjdXJlQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGlu
Zz1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3Jr
bGV0OworICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFibGVkQXRSdW50aW1lPUF1
ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7
CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0U3RhdGUgc3RhdGU7CiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCmluZGV4IDc1MWRlOTE4Y2UxZGMzNmExYzc5ZTk1MDNjOTI4ZjRmODlmMDk2YmMu
LmFlMzRmZmJhMjNjZGExNmNkOWFhNzQ2MGU3YTg3MmU3OTgyMTNlOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDEwICszMCwxMyBAQAogCiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlv
V29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtOTksMTggKzEwMiwzMCBA
QCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkKQogICAgICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9u
LgogICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICAgICAgY3JlYXRl
RGVzdGluYXRpb24oKTsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAg
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rp
b24oKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKK0Z1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9p
ZCgpPiYmKT4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkRnVuY3Rpb24oKQoreworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCku
YXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICByZXR1cm4gW3dvcmtsZXRQcm94eSA9
IG1ha2VSZWYoKndvcmtsZXRQcm94eSldKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgewor
ICAgICAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxT
Y29wZShbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAg
cmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7
CiAgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICBt
X2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE4LDcgKzEzMyw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjpyZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsK
ICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQot
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgY29udGV4dCgpLnBv
c3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApAQCAtMTYzLDcgKzE3OCw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGNoYW5uZWxDCiAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAg
ICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigp
OwotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9u
LT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGVkZTE1MzNjMTY0ODI5
Y2YxZTIzYmE5M2MyOWE4ODYzNDIwM2U0ZDIuLjdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQy
MDA1YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDcsNiArNDcsOCBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNl
QXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0
aW9uKCk7CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IGRpc3BhdGNo
VG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpOworCiAgICAgdm9pZCBpbml0aWFsaXplKCkgZmluYWw7
CiAgICAgdm9pZCB1bmluaXRpYWxpemUoKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZpbmFsOwpAQCAtNjEsNyArNjMsNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNQbGF5aW5nKCkgZmluYWw7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlv
bj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5h
dGlvbjsKICAgICBTdHJpbmcgbV9pbnB1dERldmljZUlkOwogICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZJbnB1dENoYW5uZWxzIHsgMCB9OwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmYWEzMzY1MmVkYjM3NjNiMzljMWY2YmI0
N2Y2YmIyNGZhMDNjNDIwLi41M2I1NTQxM2U5MjYxYjc3MGVmN2FjM2JhYWQ2ZDg2ZTBjODI5ZWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0zMSw3ICszMSwxMCBAQAogI2lu
Y2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAi
QXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtOTYsOSArOTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0
cnVlOwogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwogCi0gICAgLy8g
RklYTUU6IFNob3VsZCB3ZSBjYWxsIGxhenlJbml0aWFsaXplIGhlcmU/Ci0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2UgY3JlYXRl
IGZvciBvZmZsaW5lIGF1ZGlvLgotICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUo
Im9mZmxpbmUgcmVuZGVyZXIiLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyldKCkgbXV0YWJsZSB7CisgICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gb2ZmbGluZVJlbmRlcigpOwogICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCByZXN1bHQsIGN1cnJlbnRTYW1wbGVGcmFtZSA9IG1fY3VycmVudFNhbXBs
ZUZyYW1lLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewogICAgICAg
ICAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gZmFsc2U7CkBAIC0xMTQsNyArMTE1LDE3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsK
LSAgICB9LCBUaHJlYWRUeXBlOjpBdWRpbyk7CisgICAgfTsKKworICAgIGlmIChhdXRvKiB3b3Jr
bGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICB3
b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtvZmZUaHJl
YWRSZW5kZXJpbmcgPSBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG9mZlRocmVhZFJlbmRlcmluZygpOwor
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRo
ZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCisgICAgbV9y
ZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFdURk1vdmUo
b2ZmVGhyZWFkUmVuZGVyaW5nKSwgVGhyZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggOTVjYzEwODU1ZDhiYWZlZDdhNDUzYzRiZTlmNGQ5MmRl
MjQ1MzdiYi4uYzdlY2ZkZDE1NWM1MjgwZDU4NTRiZmI1MmJlYmVhMDI4NGFkYjdhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTIwNSw3ICsyMDUsMTAgQEAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCitNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAogTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcApAQCAtMjU3OSw2ICsyNTgyLDcgQEAgd29y
a2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0LmNwcAog
d29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcAogd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAog
eG1sL0RPTVBhcnNlci5jcHAKQEAgLTI2ODAsNiArMjY4NCw3IEBAIEpTQXVkaW9UaW1lc3RhbXAu
Y3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1dvcmts
ZXQuY3BwCitKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogSlNBdWRpb1dvcmtsZXROb2Rl
LmNwcAogSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAKIEpTQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTJkYjNjMjEwY2VhY2U1Mjk5MTg2OGVjYjBj
YjczNjM1Y2ZlZDAuLmIwYzI5NzBmNWFjZGY5ZTIzMzBlYmY4ZDdhOTQwMTJkNWU2MDMzODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI0NTEsNiArMjQ1MSwxMCBAQAogCQk4MzNCOUUzMjFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNDFGNTA4RDg1MDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzM0I5RTJBMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oICov
OyB9OwogCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUy
QzFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggKi87IH07CisJCTgz
M0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCRDgxMzI1MjRENEUyMDA2
RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovOyB9OworCQk4MzNCRDgxODI1MjRENEY1
MDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovOyB9OworCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5oICovOyB9OworCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5oICovOyB9OwogCQk4MzNEMUM3NjI0RDhENTRGMDBFODEzREYgLyog
V2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmggKi87IH07CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNo
YW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTgzNDNEOTg0MjREMERFRTkwMDlBQkQ0OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0M0Q5ODEy
NEQwREVBOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmggKi87IH07CkBAIC0yNTA4
LDYgKzI1MTIsNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVu
dHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5o
ICovOyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUw
QjYzODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZG
QTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmls
ZVN5c3RlbS5oICovOyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8q
IFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlB
QUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAv
KiBIVE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyog
SUlSRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNTM1
LDYgKzI1NDAsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJn
ZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVl
c3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZP
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFG
NTI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IH07CisJCTgzRDZBQUU2MjUy
NEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4
QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjRE
QTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlx
dWFkRmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMu
aCAqLzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlB
MDFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI1NDQs
NiArMjU1MCw3IEBACiAJCTgzRkIzMzcxMUY1MDhBNTQwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aCAqLzsgfTsKIAkJODNGQjMzNzMxRjUwOEE1ODAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkYx
RjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3NTFG
NTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkMxRjUwOEE0RTAwOTg2RTU0IC8q
IEZpbGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRo
cmVhZC5oICovOyB9OwogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0
MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBF
dmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkw
MjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5
IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwpAQCAtMTA1NzgsNiArMTA1ODUsMTMgQEAK
IAkJODMzQjlFMkQxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1GaWxlRW50
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRTFGNTA4RDgwMDBF
MEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5
RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTMyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNr
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrbGV0UGVuZGlu
Z1Rhc2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTYyNTI0RDRF
MzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQTI1
MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMz
Q0Y3MEYyMERCM0Y1RjAwMTQxQkNDIC8qIEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlT2JzZXJ2
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3MzI0RDhE
NTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzNEMUM3NTI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MTgsNyBAQAogCQk4Mzk5NDcwOTFG
NTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIg
LyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1
MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5
MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRN
TFdCUkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TFdCUkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiAr
MTA3NjcsNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVz
dEV2ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0
cFJlcXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1
MTFGMzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QmlxdWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5
RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJpcXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlF
MEQyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVh
ZEZpbHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEs
NiArMTA4MDcsOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURp
cmVjdG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2
RTFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAv
KiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAx
Nzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xl
dFRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
ZGlvV29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3
Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJ
bml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2MSw4IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0
ZXh0ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJl
YWtlci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyog
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUw
RjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4
ICsxNzU3NSw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUu
aCAqLywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAg
Ki8sCiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywK
LQkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3Bw
ICovLAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtl
ci5oICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRl
ci5jcHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWls
ZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9t
ZXRyeS5oICovLApAQCAtMTg3MjAsNiArMTg3MzksOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0Yw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQy
NTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJ
ODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5n
UHJveHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9v
cC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3Au
aCAqLywKQEAgLTE5NzM4LDggKzE5NzU5LDExIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJE
RkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAw
NTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIw
MDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0
RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEw
MjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUy
MjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJCQkJODMzQkQ4MTUyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEz
MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEz
MjkyMTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJ
CQk0QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAq
LywKIAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODIsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBF
MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBB
OTM5RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8q
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2
RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1
N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JE
ODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8s
CisJCQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuY3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlLmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5v
ZGUuaWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlT3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dv
cmtsZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBC
MDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIw
NSAvKiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDggKzMwNDk4LDExIEBACiAJ
CQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYx
IC8qIEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAw
NkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmts
ZXROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyog
QXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUy
NTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAw
Qjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcy
LDYgKzMxODA2LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFS
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8q
IElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4
IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3
ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTUsNiBAQAog
CQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
Q29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5
MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEy
NTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ1OTUsNiArMzQ2MjksOCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlE
NiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdG
MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8q
IFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0NSw5
IEBACiAJCQkJNEJERUEzMjAyMTdFQzU1RjAwNTJERkNEIC8qIFdvcmtsZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRCN0Y5QzUyMjE4M0I1RTUwMDFDRUJBMCAvKiBXb3JrbGV0Q29uc29sZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEzMjUyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmts
ZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3
MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0FD
RDAxMzI1MjI5RTEwMDAwRDEyNEUgLyogV29ya2xldE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4
MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IGIxNGI4MTU0MmRiODg5ZWM2ZDI1OWJjNWI3
MGVmMmE1MDk5Yzk2ZDEuLjMyM2RlZTc4ZDhiYmVjOWVjZWUxNTZiOTMzZWFkMDg2MTQxOTdhOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIgogCi0jaWYgRU5BQkxFKENTU19Q
QUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJK
U0RPTUdsb2JhbE9iamVjdFRhc2suaCIKICNpbmNsdWRlICJKU0RPTUd1YXJkZWRPYmplY3QuaCIK
QEAgLTE1MSw0ICsxNDksMyBAQCBKU1dvcmtsZXRHbG9iYWxTY29wZSogdG9KU1dvcmtsZXRHbG9i
YWxTY29wZShWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuaAppbmRleCA4ZmVmOTIwMWZlZGMzNjFlOTI1Y2M4MDYyZjJjZjI2
ZGEzMWNlYzYwLi5iOGExN2VjNGU3ZTJmYWNjYmU4NDY3NGNhMDE0ZDEzNWJlNzA1OWYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuaApAQCAtMjYsOCArMjYsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShD
U1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCkBAIC04OCw1
ICs4NiwzIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBXb3JrbGV0R2xvYmFsCiBKU1dvcmtsZXRHbG9iYWxTY29wZSog
dG9KU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19QQUlOVElOR19BUEkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5k
ZXggNjJiMGQ2ZDU0YTRmMDAwMmRlZTRiZDJkZmM3ZWM2ZWQxMzdkODQ2OC4uYjNhOGQ1YjEzYzQ1
MTFjZjc4NDI1NzU5ZDYwNTE0ODExMTQ5MGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oQXVkaW9MaXN0ZW5lcikgXAogICAgIG1hY3JvKEF1ZGlv
UGFyYW1NYXApIFwKICAgICBtYWNybyhBdWRpb1dvcmtsZXQpIFwKKyAgICBtYWNybyhBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldE5vZGUpIFwKICAgICBt
YWNybyhBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNybyhBdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAppbmRleCAzOGRmNjc3NTJlOTBhNmEyZTAx
NzRjZmFmYmM0Zjg3MWVhODFjMTRhLi4wNzY2MDgzODA3NGUyNmViZjQzMWQ1MWE5YWYzMTAxOWM1
OWEwNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlND
bGllbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlND
bGllbnREYXRhLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRE9NR0NPdXRwdXRD
b25zdHJhaW50LmgiCiAjaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFzZS5oIgogI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCkBAIC02OCw5ICs2OSwxMiBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVudERhdGEo
Vk0mIHZtKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVhcENlbGxUeXBl
Rm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0
ZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgorICAgICwgbV9oZWFwQ2Vs
bFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRl
PEpTV29ya2xldEdsb2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQog
ICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNv
SGVhcENlbGxUeXBlOjpjcmVhdGU8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZT4oKSkKLSAgICAs
IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5
cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKKyNlbmRpZgorI2lmIEVOQUJMRShX
RUJfQVVESU8pCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
PigpKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLCBtX2hlYXBD
ZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdChKU0M6Oklzb0hlYXBDZWxs
VHlwZTo6Y3JlYXRlPEpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdD4oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4M2I4
MjM0YzMzNWRlZDE0NTBkMTgxM2ZlODQyOTdhOTc1ODM4OTUxLi5iODQ0MGU4NzcwZTQ3MjkxZjdl
ZTIwNjMxOTllYTA1YzNjNGJiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC05OSw5ICs5OSwxMiBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxs
VHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKICNlbmRp
ZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVG
b3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2Vs
bFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGU7CisjZW5kaWYKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlw
ZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOwogI2VuZGlmCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVh
cENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVj
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAppbmRleCBkMGE1NDdhYzU2NzM5ZmRkZTFlNzBlOGVjMTliMmI0ODg1ZWI1NjA5Li5l
MzkwMTgwZjU3MWY5ZTFlMzViYzkyM2IxZDc3MWQ0Yjk1Y2VkYTQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNiw2
ICsyNiw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgU2NyaXB0U291cmNl
Q29kZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29w
ZTsKIAotY2xhc3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciB7CitjbGFzcyBXb3JrZXJTY3JpcHRD
b250cm9sbGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtl
ckdsb2JhbFNjb3BlKik7CkBAIC02Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBmb3JiaWRF
eGVjdXRpb24oKS9pc0V4ZWN1dGlvbkZvcmJpZGRlbigpIHRvIGd1YXJkIGFnYWluc3QgcmVlbnRy
eSBpbnRvIEpTLgogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgogICAgIHZv
aWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOwotICAgIGJvb2wgaXNUZXJtaW5hdGlu
Z0V4ZWN1dGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNv
bnN0IGZpbmFsOwogCiAgICAgLy8gQ2FsbGVkIG9uIFdvcmtlciB0aHJlYWQgd2hlbiBKUyBleGl0
cyB3aXRoIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiBjYXVzZWQgYnkgZm9yYmlkRXhlY3V0aW9uKCkg
cmVxdWVzdCwKICAgICAvLyBvciBieSBXb3JrZXIgdGhyZWFkIHRlcm1pbmF0aW9uIGNvZGUgdG8g
cHJldmVudCBmdXR1cmUgZW50cnkgaW50byBKUy4KQEAgLTc5LDExICs4MCwxMSBAQCBwdWJsaWM6
CiAKICAgICBKU0M6OlZNJiB2bSgpIHsgcmV0dXJuICptX3ZtOyB9CiAgICAgCi0gICAgdm9pZCBy
ZWxlYXNlSGVhcEFjY2VzcygpOwotICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKTsKKyAgICB2
b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2Vz
cygpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVu
TG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKLSAgICB2b2lkIHJlbW92ZVRp
bWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9u
Q2FsbGJhY2spOworICAgIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxv
b3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1v
dmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1
Z2dlciopOwogICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCAxMGYzZTY2ODY2NTQ1YTVhNjBhOWVlNWE5Zjg2NzRhZTNjMjg0OTMyLi41OGZkMWE3YTI2ZmRk
MWRhYzRkYjJiNzBiMWM1NDUzNzViY2Q0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzc1LDcgKzc3NSw3IEBAIHN1
YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKIAogICAgICMgRm9yIHdvcmtlcnMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgcmV0
dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiOwot
ICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEds
b2JhbFNjb3BlLgorICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBh
aW50V29ya2xldEdsb2JhbFNjb3BlIG9yIGEgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuCiAgICAg
cmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2xldEdsb2JhbFNjb3Bl
IjsKIAogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXgg
YmVlMGZjNTA2OTE5ZmNjZmQxNzVmNjljYzUyM2M1NzU2YmMwOGE4OC4uZjRjODRiYzg4YzQxMTQ1
ZGQxNmVkMzgzZDRkMzljNDJjYzVkNjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAgLTQ3LDYgKzQ3LDcgQEAgbXkgJGRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlOworbXkgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICR0
ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwczsKIG15ICRpZGxBdHRyaWJ1dGVzRmlsZTsKQEAgLTY5LDYgKzcwLDcgQEAgR2V0T3B0aW9u
cygnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGU9cycgPT4gXCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAg
ICAgICAgICAncGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwk
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAorICAgICAgICAgICAnYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAndGVzdEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUs
CiAgICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM9cycgPT4gXCRzdXBwbGVtZW50
YWxNYWtlZmlsZURlcHMsCiAgICAgICAgICAgICdpZGxBdHRyaWJ1dGVzRmlsZT1zJyA9PiBcJGlk
bEF0dHJpYnV0ZXNGaWxlLApAQCAtODMsNiArODUsNyBAQCBkaWUoJ011c3Qgc3BlY2lmeSBhbiBv
dXRwdXQgZmlsZSB1c2luZyAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RgogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91
dHB1dCBmaWxlIHVzaW5nIC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1
bmxlc3MgZGVmaW5lZCgkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUo
J011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxl
IHVzaW5nIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVz
cyBkZWZpbmVkKCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGll
KCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSB8fCAhZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKIGRpZSgnTXVzdCBz
cGVjaWZ5IHRoZSBmaWxlIGxpc3RpbmcgYWxsIElETHMgdXNpbmcgLS1pZGxGaWxlTmFtZXNMaXN0
LicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlTmFtZXNMaXN0KTsKIGRpZSgnTXVzdCBzcGVjaWZ5
IElETCBhdHRyaWJ1dGVzIGZpbGUgdXNpbmcgLS1pZGxBdHRyaWJ1dGVzRmlsZS4nKSB1bmxlc3Mg
ZGVmaW5lZCgkaWRsQXR0cmlidXRlc0ZpbGUpOwpAQCAtOTUsNiArOTgsNyBAQCAkZGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRk
ZWRpY2F0ZWRXb3JrZQogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
PSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRo
SWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRhdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBz
ID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmlu
ZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyk7CiAKIG15IEBpZGxGaWxlTmFtZXM7CkBAIC0x
MzUsNiArMTM5LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUg
PSAiIjsKIG15ICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAk
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CitteSAkYXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkdGVzdEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogCiBteSAkaXNvU3Vic3BhY2VzSGVhZGVyQ29kZSA9
IDw8RU5EOwpAQCAtMjM3LDYgKzI0Miw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0
IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBl
bHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlBhaW50V29ya2xldCIpIHsKICAgICAgICAgICAgICAg
ICAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVD
b2RlOworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkF1ZGlvV29ya2xl
dCIpIHsKKyAgICAgICAgICAgICAgICAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENv
bnRleHQgZXEgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICR0ZXN0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAg
ICAgfSBlbHNlIHsKQEAgLTI1NCw2ICsyNjEsNyBAQCBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2Uo
IkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjbwog
R2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAkc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJXb3Jr
bGV0R2xvYmFsU2NvcGUiLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHdv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJm
YWNlKCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OworR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSIsICRh
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRhdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCR0ZXN0
R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkdGVz
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRl
eHROYW1lKTsKIAogaWYgKCRpc29TdWJzcGFjZXNIZWFkZXJGaWxlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGRh
ZTExMDdkMzM0YmM4ZjQzZGYyZjRmN2U4NGE5ODNjMzVkNjZmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDIgQEAKK3BhcnRpYWwgaW50ZXJmYWNlIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2Iw
YTU1OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlz
IGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9t
IHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZl
cnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBj
ZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgK
QEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3Jt
IGJ1aWxkIHNjcmlwdHMgdGhhdCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
LmggYW5kCisgICAgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2Vy
ZSBjcmVhdGVkIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwsIGFu
ZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0
ZSBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKaW5kZXggMTM2ZTRmMTRlY2ZlNWU0
YjlmOWM5NTIwMjc0MzlhNGEzMWQ0OTY0NS4uNmEwZTE5NjY0NTQyZTgxNjgxYzdhNjk3ZWNjNzEx
NWI3YTRkZmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29y
a2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01DU1NOYW1lc3BhY2UuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5j
bHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsMTEgKzU3LDE4IEBAIGNvbnN0
IGNoYXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAi
RE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9u
cyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorLy8gRklYTUU6IEdldCBy
aWQgb2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUgc3RhbmRhcmQtY29tcGxpYW50IFdv
cmtsZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxl
KGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJfcyB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG93
bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0byBtYXliZUNvbnRleHQgPSBQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRTb3VyY2VDb2Rl
KG1vZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7CiAgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTcwLDkgKzc4LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xlCiAKICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CiAgICAgZm9yIChh
dXRvJiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9uTWFwKCkua2V5cygpKQotICAgICAg
ICBkb2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJl
Zihjb250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50LT5zZXRQYWludFdvcmtsZXRHbG9i
YWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CiAgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBQ
YWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7CisgICAgLy8gRklYTUU6IEFkZCBp
bXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBiOWIxMzg1YmIwOGEzZjFjZWQ0ZWIy
YjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIyMDQ4MjIzZjJj
MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCkBAIC00MSwxNSAr
NDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBjbGFzcyBQYWludFdvcmtsZXQgZmlu
YWwgOiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQYWludFdvcmts
ZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWludFdv
cmtsZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IFBhaW50V29ya2xl
dChkb2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICAg
ICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmtsZXQuCisgICAgdm9pZCBhZGRNb2R1
bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29w
ZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgUGFp
bnRXb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhaW50V29ya2xldChEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1bWVudCkKKyAgICB7IH0KIH07CiAK
IGNsYXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNT
U05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmFjZjNmMThjYWRjNjg2
YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMzZmIzMmMxN2Qw
ZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDM5LDcgKzg0MzksNyBA
QCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50Ojpk
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5zdXJl
UGFpbnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRXb3JrbGV0KQotICAgICAgICBtX3Bh
aW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGFpbnRXb3Jr
bGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wYWludFdv
cmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4
IDVkZTAxN2M4YjE1NzA0Yjg3ZjgxYzg1NGJiYzQ3NzA2MmJjZGExMmMuLjMwMTcxMDA0NGZmMTNh
MTRjMDIyOGRhMzg5MDJkM2U3ZDMzNzdjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbgpAQCAtNTUsNyArNTUsNyBAQCBXZWJHUFVEZXZpY2UgY29uZGl0aW9uYWw9
V0VCR1BVCiBXZWJLaXRNZWRpYUtleVNlc3Npb24gY29uZGl0aW9uYWw9TEVHQUNZX0VOQ1JZUFRF
RF9NRURJQQogV2ViU29ja2V0CiBXb3JrZXIKLVdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25h
bD1DU1NfUEFJTlRJTkdfQVBJCitXb3JrbGV0R2xvYmFsU2NvcGUKIFhNTEh0dHBSZXF1ZXN0CiBY
TUxIdHRwUmVxdWVzdFVwbG9hZAogV2ViWFJMYXllciBjb25kaXRpb25hbD1XRUJYUgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAwNmEzZWM5MDY1
NTgyNmZiY2Q5MWE4M2I2NDFlMjdmNTllNzVkZTYwLi5hZWI1ODNjYTRiMmFlMjEzMzBhZTM0OTgz
OTViYjY1ODMwZTA0OTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaApAQCAtMTI3LDYgKzEyNywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NQYWlu
dGluZ0FQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZDsg
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZvaWQgc2V0QXVkaW9Xb3Jr
bGV0RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2F1ZGlvV29ya2xldEVuYWJsZWQgPSBpc0Vu
YWJsZWQ7IH0KKyAgICBib29sIGF1ZGlvV29ya2xldEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2F1ZGlvV29ya2xldEVuYWJsZWQ7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19UWVBFRF9P
TSkKICAgICB2b2lkIHNldENTU1R5cGVkT01FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fQ1NT
VHlwZWRPTUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNzc1R5cGVkT01FbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9DU1NUeXBlZE9NRW5hYmxlZDsgfQpAQCAtMzAyLDYgKzMwNyw5
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgYm9vbCBtX0NT
U1BhaW50aW5nQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FV
RElPKQorICAgIGJvb2wgbV9hdWRpb1dvcmtsZXRFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICBib29sIG1fQ1NTVHlwZWRPTUVuYWJsZWQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDc5MGRiNGI3ZTk2ZmE5
NmRmODhmZDY3OGNhZTBjNzJlNTIzYTgxOTkuLjdjZDVkZjEwZmZkMTBmZjczZDQ5M2JlMWMwOWE4
MTlkMjQ1MjY0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTI1OSw4ICsyNTks
NiBAQCBwcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIG1vZGVyblVu
cHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCi1hdWRpb1dvcmtsZXRF
bmFibGVkOgotICBpbml0aWFsOiBmYWxzZQogcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOgog
ICBpbml0aWFsOiBmYWxzZQogZnVsbFNjcmVlbkVuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNDNkNTc2NTI5OGMwNjc5MmM2ZGRjZTg1YzQyYTBhM2Y1
NzVhODc4My4uOTg1MjA1ZGFiYWFiOGRhMzg2ZjY1NjRkODA5NmZkMjg2NTVjMWExMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAtMzcsNyArMzcsNyBAQCBzdHJ1
Y3QgTm93UGxheWluZ0luZm87CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsK
IHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCisgICAgdmlydHVh
bCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAg
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpID0gMDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCmluZGV4IGRl
Yjc1N2RjNDVlNTc4NTg1MjE3ZmQzYmVjMDcxMmI2NDRkNzUzNzQuLjE2MGM2NTc4ZTE1ZWQ1ZWE3
NTI1ZGM3NjhiZDRlZjNmZGM3NGY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgQXVk
aW9EZXN0aW5hdGlvbl9oCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDE2ICs0MSwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJh
Y2s7CiAvLyBUaGUgYXVkaW8gaGFyZHdhcmUgcGVyaW9kaWNhbGx5IGNhbGxzIHRoZSBBdWRpb0lP
Q2FsbGJhY2sgcmVuZGVyKCkgbWV0aG9kIGFza2luZyBpdCB0byByZW5kZXIvb3V0cHV0IHRoZSBu
ZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1ZGlvLgogLy8gSXQgb3B0aW9uYWxseSB3aWxsIHBhc3Mg
aW4gbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dCB3aGVuIGl0IGNhbGxzIHJlbmRlcigpLgogCi1jbGFz
cyBBdWRpb0Rlc3RpbmF0aW9uIHsKK2NsYXNzIEF1ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9EZXN0aW5hdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVs
cyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0
LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2Nh
bCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8QXVk
aW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1
ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0
b3AoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzUGxheWluZygpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAKaW5kZXggNzRhZDYxNmZhOWUyNWRlYjk5OWM5NmI2NjdlZDE0OTQ3MGJm
Njg3Mi4uZGE0ZTRiMmM4YjYwNzM0ODNmOWZhZGM2N2JhZmJmZmY4Njg1ZjlhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rl
c3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIGNvbnN0ZXhwciBzaXplX3QgZmlm
b1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKIAogQ3JlYXRl
QXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVh
dGVPdmVycmlkZSA9IG51bGxwdHI7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRp
b24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6
IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTU1LDcgKzU1
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246
OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAoQXVkaW9EZXN0aW5hdGlvbkNv
Y29hOjpjcmVhdGVPdmVycmlkZSkKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6Y3JlYXRlT3ZlcnJpZGUoY2FsbGJhY2ssIHNhbXBsZVJhdGUpOwogCi0gICAgYXV0byBkZXN0
aW5hdGlvbiA9IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgYXV0byBkZXN0aW5hdGlvbiA9
IGFkb3B0UmVmKCpuZXcgQXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxiYWNrLCBudW1iZXJPZk91
dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7CiAgICAgZGVzdGluYXRpb24tPmNvbmZpZ3VyZSgp
OwogICAgIHJldHVybiBkZXN0aW5hdGlvbjsKIH0KQEAgLTEwMyw5ICsxMDMsMTAgQEAgdW5zaWdu
ZWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpmcmFtZXNQZXJCdWZmZXIoKSBjb25zdAogICAgIHJl
dHVybiBtX3JlbmRlckJ1cy0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5hdGlvbkNv
Y29hOjpzdGFydCgpCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248
dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CiAg
ICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCIpOworICAgIG1fZGlz
cGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAg
ICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRVbml0KTsK
IAogICAgIGlmICghcmVzdWx0KQpAQCAtMTE2LDYgKzExNyw3IEBAIHZvaWQgQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpzdG9wKCkKIHsKICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnN0b3AiKTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1f
b3V0cHV0VW5pdCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gbnVsbHB0cjsKIAog
ICAgIGlmICghcmVzdWx0KQogICAgICAgICBzZXRJc1BsYXlpbmcoZmFsc2UpOwpAQCAtMTIzLDYg
KzEyNSw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIAogdm9pZCBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxheWluZykKIHsKKyAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1faXNQbGF5aW5nTG9jayk7CiAgICAgaWYgKG1faXNQbGF5
aW5nID09IGlzUGxheWluZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMsMTggKzE3NiwzOCBA
QCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVT
dGFtcCogdGltZXN0YW1wLCBVSW50MzIgbgogCiAgICAgLy8gQXNzb2NpYXRlIHRoZSBkZXN0aW5h
dGlvbiBkYXRhIGFycmF5IHdpdGggdGhlIG91dHB1dCBidXMgdGhlbiBmaWxsIHRoZSBGSUZPLgog
ICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1RvQnVzKGJ1ZmZlcnMsIG1fb3V0cHV0QnVzLmdldCgpLCBu
dW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9mRnJhbWVzLCAwLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAg
c2l6ZV90IGZyYW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0cHV0QnVzLnB0cigpLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyOwogCisgICAgeworICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOworICAgICAgICBmcmFtZXNU
b1JlbmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMp
OworICAgIH0KKworICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJl
bmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgorICAgIGlmIChtX2Rpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lc1RvUmVuZGVyXSgpIG11dGFibGUg
eworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faXNQbGF5aW5nTG9j
aywgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgICAgICAgICBpZiAobG9jay5vd25zX2xvY2soKSAm
JiBtX2lzUGxheWluZykKKyAgICAgICAgICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZy
YW1lc1RvUmVuZGVyKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlbmRlck9u
UmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOworCisgICAgcmV0dXJuIG5vRXJyOworfQor
CisvLyBUaGlzIHJ1bnMgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuIEF1ZGlvV29ya2xl
dCBpcyBlbmFibGVkLCBvbiB0aGUgYXVkaW8gZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZCBvdGhl
cndpc2UuCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVh
ZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpCit7CiAgICAgZm9yIChzaXplX3QgcHVzaGVkRnJhbWVz
ID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hlZEZyYW1lcyArPSBBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpIHsKICAgICAgICAgaWYgKG1fcmVzYW1wbGVy
KQogICAgICAgICAgICAgbV9yZXNhbXBsZXItPnByb2Nlc3ModGhpcywgbV9yZW5kZXJCdXMucHRy
KCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIAorICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOwogICAgICAgICBtX2ZpZm8tPnB1
c2gobV9yZW5kZXJCdXMucHRyKCkpOwogICAgIH0KLQotICAgIHJldHVybiBub0VycjsKIH0KIAog
Ly8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKaW5kZXgg
MDBkZGEyZmIyYTM3YjgzZjEwZWZhNTI3MWIxNzY4YTgwYjQ4MTFlYy4uMDg5NGQ2MjFhMmYxNTMy
MjUxMjczNjUwYjZlNWEzZDNlYzk5NmY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTQw
LDcgKzQwLDcgQEAgY2xhc3MgQXVkaW9CdXM7CiBjbGFzcyBNdWx0aUNoYW5uZWxSZXNhbXBsZXI7
CiBjbGFzcyBQdXNoUHVsbEZJRk87CiAKLXVzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2Nv
YU92ZXJyaWRlID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9D
YWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwordXNpbmcgQ3JlYXRlQXVkaW9EZXN0aW5hdGlv
bkNvY29hT3ZlcnJpZGUgPSBSZWY8QXVkaW9EZXN0aW5hdGlvbj4oKikoQXVkaW9JT0NhbGxiYWNr
JiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIC8vIEFuIEF1ZGlvRGVzdGluYXRpb24gdXNpbmcgQ29y
ZUF1ZGlvJ3MgZGVmYXVsdCBvdXRwdXQgQXVkaW9Vbml0CiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9u
Q29jb2EgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlk
ZXIgewpAQCAtNjUsMTEgKzY1LDE1IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0QXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwogCisg
ICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJU
aHJlYWQ7CisKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQg
c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBvdmVycmlkZTsKICAg
ICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAotICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYs
IGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOworICAgIHZvaWQgcmVu
ZGVyT25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpOworCisgICAgZnJpZW5k
IFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7CiAgICAg
CiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRp
b0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwpAQCAtOTEsMTEgKzk1LDE0IEBA
IHByaXZhdGU6CiAgICAgLy8gUmVzb2x2ZXMgdGhlIGJ1ZmZlciBzaXplIG1pc21hdGNoIGJldHdl
ZW4gdGhlIFdlYkF1ZGlvIGVuZ2luZSBhbmQKICAgICAvLyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24g
ZnJvbSB0aGUgYWN0dWFsIGF1ZGlvIGRldmljZS4KICAgICBVbmlxdWVSZWY8UHVzaFB1bGxGSUZP
PiBtX2ZpZm87CisgICAgTG9jayBtX2ZpZm9Mb2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE11
bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9yZXNhbXBsZXI7CiAgICAgQXVkaW9JT1Bvc2l0aW9uIG1f
b3V0cHV0VGltZXN0YW1wOwogCiAgICAgZmxvYXQgbV9jb250ZXh0U2FtcGxlUmF0ZTsKKworICAg
IExvY2sgbV9pc1BsYXlpbmdMb2NrOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IDhmZGVi
NmEyNDI0ODQ5Y2FjMTdiYmU5MGFhZTcxMmE4OWEyNGQxMDAuLmMwNWFlNmJlNjI5ZGRiM2RmNjcy
MjgyOTExMWNlOGI2NDAwZWU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZvaWQgYXV0b0F1ZGlvU2lua0NoaWxk
QWRkZWRDYWxsYmFjayhHc3RDaGlsZFByb3h5KiwgR09iamVjdCogb2JqZWN0LCBnY2gKICAgICAg
ICAgZ19vYmplY3Rfc2V0KEdTVF9BVURJT19CQVNFX1NJTksob2JqZWN0KSwgImJ1ZmZlci10aW1l
Iiwgc3RhdGljX2Nhc3Q8Z2ludDY0PigxMDAwMDApLCBudWxscHRyKTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpCitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSB1c2Ugb2YgaW5wdXREZXZpY2VJZCBhcyBhcHBy
b3ByaWF0ZS4KIApAQCAtNjAsNyArNjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5h
dGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbAogICAg
IGlmIChudW1iZXJPZk91dHB1dENoYW5uZWxzICE9IDIpCiAgICAgICAgIExPRyhNZWRpYSwgIkF1
ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgldSwgJXUsICVmKSAtIHVuaGFuZGxlZCBvdXRwdXQgY2hh
bm5lbHMiLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNh
bXBsZVJhdGUpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lcj4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoY2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsKIH0KIAogZmxv
YXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkKQEAgLTE2NSw3ICsxNjUs
NyBAQCBnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXZvaWQgQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
OjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpCiB7CiAgICAgQVNT
RVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKICAgICBpZiAoIW1fYXVkaW9TaW5rQXZhaWxhYmxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXggY2ZlNjg5MjA4ZDA5
NjhhNTFhOGJiMWQxZTg3ZjZlMTlkMGYyMzE2Ni4uZDU1MTA0Yzg4Y2NiY2RmZmZmOTdjNGU3YTQ5
NDk4NmY5OTZiZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBA
IC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1
ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZpcnR1YWwgfkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXIoKTsKIAotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRv
UmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogICAg
IGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwCmluZGV4IDlkYWE3ZDAxNDFkODEwNGU0ZjVjNGMyNjQ4YmM4YzZiZTUyNmMw
YzguLjVhMTJjZGU0ZmNkZmM1N2ZhZDQyYjdkOWU4ZmU3MzIwNDM1MDlkNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmNwcApAQCAtNDUsOCArNDUsOSBAQCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpN
b2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAKIE1v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6On5Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKCkgPSBk
ZWZhdWx0OwogCi12b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KCkKK3ZvaWQg
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CisgICAgbV9kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBtX3Rp
bWVyLnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgeyBtX251bWJlck9mRnJhbWVzVG9Qcm9jZXNzIC8g
c2FtcGxlUmF0ZSgpIH0pOwogICAgIHNldElzUGxheWluZyh0cnVlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmgKaW5kZXggZDRlYWU4MzM0MzVjMGE2MDQ1NWVkMGI5NjkyNTY4YzhlYzYzZjM2ZC4uYThkMjhj
NGVkMWJiZWZmZDMzMDk0NTBkYWFmMzI5ZWJhMjUzNGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAg
LTM4LDEyICszOCwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiBjbGFzcyBNb2NrQXVkaW9E
ZXN0aW5hdGlvbkNvY29hIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb25Db2NvYSB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgZmxvYXQgc2FtcGxlUmF0ZSkgeyByZXR1cm4gbWFrZVVuaXF1ZTxNb2NrQXVkaW9EZXN0aW5h
dGlvbkNvY29hPihjYWxsYmFjaywgc2FtcGxlUmF0ZSk7IH0KKyAgICBzdGF0aWMgUmVmPEF1ZGlv
RGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1w
bGVSYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYShjYWxsYmFjaywgc2FtcGxlUmF0ZSkpOworICAgIH0KKwogICAgIFdFQkNP
UkVfRVhQT1JUIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0NhbGxiYWNrJiwgZmxv
YXQgc2FtcGxlUmF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKKyAg
ICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJikgZmluYWw7
CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKICAgICB2b2lkIHRpY2soKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggYjJmMzMxMmNmNGIwNDYx
Yjg3ZmFhYWMzOWNkNDJhMDYzZTU4YWM3My4uMWZlOTM5ODdlZjk2MWZkZmJlMzhmNDdjYTY3MWFm
NWZkYTk4ZDlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAKQEAgLTU0NCw0ICs1NDQsOSBAQCBSZWZlcnJlclBvbGljeSBXb3JrZXJHbG9iYWxTY29w
ZTo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAogICAgIHJldHVybiBtX3JlZmVycmVyUG9saWN5Owog
fQogCitUaHJlYWQqIFdvcmtlckdsb2JhbFNjb3BlOjp1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV90aHJlYWQudGhyZWFkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBi
ZDljZjE0MGRkNTJmYjg0OThiOWZhNDEwNjBjOTNhYmZhNjgzODVlLi45MGRmM2I2YWYzZDYzZWM2
MWFlYzlhMTIzYzA4NzdlNzllMzRiMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKQEAgLTU5
LDcgKzYwLDcgQEAgbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uUHJv
eHk7CiB9CiAKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+
LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMgeworY2xhc3MgV29ya2VyR2xvYmFsU2Nv
cGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBwbGVt
ZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzLCBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyR2xvYmFsU2NvcGUpOwog
cHVibGljOgogICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlKCk7CkBAIC04NSwxMyArODYs
MTUgQEAgcHVibGljOgogICAgIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbiYgc3dDbGllbnRDb25u
ZWN0aW9uKCk7CiAjZW5kaWYKIAotICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgp
IHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciog
c2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KICAgICB2b2lkIGNsZWFy
U2NyaXB0KCkgeyBtX3NjcmlwdCA9IG51bGxwdHI7IH0KIAogICAgIFdvcmtlckluc3BlY3RvckNv
bnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0
b3JDb250cm9sbGVyOyB9CiAKICAgICBXb3JrZXJUaHJlYWQmIHRocmVhZCgpIGNvbnN0IHsgcmV0
dXJuIG1fdGhyZWFkOyB9CiAKKyAgICBUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBm
aW5hbDsKKwogICAgIHVzaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhhc1BlbmRpbmdBY3Rp
dml0eTsKIAogICAgIHZvaWQgcG9zdFRhc2soVGFzayYmKSBmaW5hbDsgLy8gRXhlY3V0ZXMgdGhl
IHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KQEAgLTExOSw3ICsxMjIs
NyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OmRlcmVmOwogCi0gICAgYm9vbCBpc0Nsb3NpbmcoKSB7IHJldHVybiBtX2Nsb3Npbmc7
IH0KKyAgICBib29sIGlzQ2xvc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2xvc2luZzsg
fQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
OjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTQ4ZTA4NDhi
ZTM1MjJiNmFkOWMzMjg1MzM5NzQ2YzdjMzk3NDI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXVEYgewor
Y2xhc3MgVGhyZWFkOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCBXVEY6OlRocmVhZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgPSAwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjliZjgzZTkz
MGRkMTY1ZDhhMzMwNDcwNTJhZDU1ZDIyZmFmYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VIZWFwQWNj
ZXNzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRp
bWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZp
Y2F0aW9uQ2FsbGJhY2spID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBpc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKaW5kZXggNjZlY2Q1MzZmODEzZDAyOWM0
OTdmMWFlYTdmMjE5ZWRmYzc1YjM3NS4uYmI2MWZjNWYyYTk3ZGI4NGIxMTNiZTIyM2M3YTdhZGM3
MTliNDk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIlRo
cmVhZFRpbWVycy5oIgogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKLSNpbmNsdWRlICJXb3Jr
ZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgi
CiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAKICNpZiBVU0UoR0xJQikKQEAgLTEzMiw3ICsx
MzIsNyBAQCBwcml2YXRlOgogICAgIElzRm9yRGVidWdnaW5nIG1faXNGb3JEZWJ1Z2dpbmcgeyBJ
c0ZvckRlYnVnZ2luZzo6Tm8gfTsKIH07CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtl
ckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0
aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpObyk7CiAgICAgTW9kZVByZWRpY2F0
ZSBtb2RlUHJlZGljYXRlKGRlZmF1bHRNb2RlKCkpOwpAQCAtMTQzLDEzICsxNDMsMTMgQEAgdm9p
ZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCiAgICAgcnVu
Q2xlYW51cFRhc2tzKGNvbnRleHQpOwogfQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtl
clJ1bkxvb3A6OnJ1bkluRGVidWdnZXJNb2RlKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KQor
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRlYnVnZ2VyTW9kZShX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4dCkKIHsKICAgICBSdW5Mb29wU2V0dXAg
c2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Olllcyk7CiAgICAgcmV0
dXJuIHJ1bkluTW9kZSgmY29udGV4dCwgTW9kZVByZWRpY2F0ZSB7IGRlYnVnZ2VyTW9kZSgpIH0s
IFdhaXRGb3JNZXNzYWdlKTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5M
b29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
bW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1
bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCwgY29u
c3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAgICBBU1NFUlQobW9kZSAh
PSBkZWJ1Z2dlck1vZGUoKSk7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29w
U2V0dXA6OklzRm9yRGVidWdnaW5nOjpObyk7CkBAIC0xNTgsMTAgKzE1OCwxMCBAQCBNZXNzYWdl
UXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29w
ZSogY29udGV4dCwgY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250
ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRNb2RlKQor
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNhdGUmIHByZWRpY2F0
ZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgIEFTU0VS
VChjb250ZXh0LT50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAg
IEFTU0VSVChjb250ZXh0LT51bmRlcmx5aW5nVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgp
KTsKIAogICAgIEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sg
dGltZXJBZGRlZFRhc2sgPSBXVEY6OmNyZWF0ZVNoYXJlZFRhc2s8SlNDOjpKU1J1bkxvb3BUaW1l
cjo6VGltZXJOb3RpZmljYXRpb25UeXBlPihbdGhpc10gewogICAgICAgICAvLyBXZSBkb24ndCBh
Y3R1YWxseSBkbyBhbnl0aGluZyBoZXJlLCB3ZSBqdXN0IHdhbnQgdG8gbG9vcCBhcm91bmQgcnVu
SW5Nb2RlCkBAIC0xODYsMTMgKzE4NiwxMyBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtl
clJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwogICAg
IGlmICh3YWl0TW9kZSA9PSBXYWl0Rm9yTWVzc2FnZSAmJiBwcmVkaWNhdGUuaXNEZWZhdWx0TW9k
ZSgpICYmIG1fc2hhcmVkVGltZXItPmlzQWN0aXZlKCkpCiAgICAgICAgIHRpbWVvdXREZWxheSA9
IHN0ZDo6bWluKHRpbWVvdXREZWxheSwgbV9zaGFyZWRUaW1lci0+ZmlyZVRpbWVEZWxheSgpKTsK
IAotICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBjb250ZXh0LT5zY3Jp
cHQoKSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgewogICAg
ICAgICBzY3JpcHQtPnJlbGVhc2VIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNjcmlwdC0+YWRkVGlt
ZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KICAgICBNZXNzYWdlUXVl
dWVXYWl0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIHRhc2sgPSBtX21lc3NhZ2VRdWV1ZS53YWl0
Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQocmVzdWx0LCBwcmVkaWNhdGUsIHRpbWVvdXRE
ZWxheSk7Ci0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCA9IGNvbnRleHQt
PnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7
CiAgICAgICAgIHNjcmlwdC0+YWNxdWlyZUhlYXBBY2Nlc3MoKTsKICAgICAgICAgc2NyaXB0LT5y
ZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVkVGFzayk7CiAgICAgfQpAQCAtMjIz
LDEwICsyMjMsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5J
bk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxT
Y29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuQ2xlYW51cFRhc2tzKFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIEFTU0VSVChjb250ZXh0KTsK
LSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVu
dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6
OmN1cnJlbnQoKSk7CiAgICAgQVNTRVJUKG1fbWVzc2FnZVF1ZXVlLmtpbGxlZCgpKTsKIAogICAg
IHdoaWxlICh0cnVlKSB7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBXb3JrZXJSdW5Mb29wOjpw
b3N0RGVidWdnZXJUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogICAg
IHBvc3RUYXNrRm9yTW9kZShXVEZNb3ZlKHRhc2spLCBkZWJ1Z2dlck1vZGUoKSk7CiB9CiAKLXZv
aWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9ybVRhc2soV29ya2VyR2xvYmFsU2NvcGUqIGNv
bnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNrKFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIGlmICgoIWNvbnRleHQtPmlzQ2xvc2lu
ZygpICYmIGNvbnRleHQtPnNjcmlwdCgpICYmICFjb250ZXh0LT5zY3JpcHQoKS0+aXNUZXJtaW5h
dGluZ0V4ZWN1dGlvbigpKSB8fCBtX3Rhc2suaXNDbGVhbnVwVGFzaygpKQogICAgICAgICBtX3Rh
c2sucGVyZm9ybVRhc2soKmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSdW5Mb29wLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxv
b3AuaAppbmRleCBhOGM5ZGViZDgwZDgwOTk1NGE3YTlkNjkwZjc3NDA2ZDI1MjgyNjY4Li5lZTI2
YjM3ZjI5OWNhNjk5YzA0YzBiMWM3NDQxNTA0ODA4NzE1N2YzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclJ1bkxvb3AuaApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgTW9kZVByZWRpY2F0ZTsKLSAgICBjbGFzcyBXb3JrZXJHbG9iYWxTY29w
ZTsKKyAgICBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKICAgICBjbGFzcyBXb3Jr
ZXJTaGFyZWRUaW1lcjsKIAogICAgIGNsYXNzIFdvcmtlclJ1bkxvb3AgewpAQCAtNDcsMTMgKzQ3
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfldvcmtlclJ1bkxvb3AoKTsKICAg
ICAgICAgCiAgICAgICAgIC8vIEJsb2NraW5nIGNhbGwuIFdhaXRzIGZvciB0YXNrcyBhbmQgdGlt
ZXJzLCBpbnZva2VzIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIHZvaWQgcnVuKFdvcmtlckdsb2Jh
bFNjb3BlKik7CisgICAgICAgIHZvaWQgcnVuKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7
CiAKICAgICAgICAgZW51bSBXYWl0TW9kZSB7IFdhaXRGb3JNZXNzYWdlLCBEb250V2FpdEZvck1l
c3NhZ2UgfTsKIAogICAgICAgICAvLyBXYWl0cyBmb3IgYSBzaW5nbGUgdGFzayBhbmQgcmV0dXJu
cy4KLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyR2xvYmFs
U2NvcGUqLCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlID0gV2FpdEZvck1lc3NhZ2UpOwot
ICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluRGVidWdnZXJNb2RlKFdvcmtlckds
b2JhbFNjb3BlJik7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSA9
IFdhaXRGb3JNZXNzYWdlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5JbkRl
YnVnZ2VyTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSYpOwogCiAgICAgICAgIHZvaWQg
dGVybWluYXRlKCk7CiAgICAgICAgIGJvb2wgdGVybWluYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVzc2FnZVF1ZXVlLmtpbGxlZCgpOyB9CkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bW9kZTsgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICB2b2lkIHBlcmZvcm1UYXNr
KFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgICAgICAgICB2b2lkIHBlcmZvcm1UYXNrKFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlKik7CiAKICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2sgbV90YXNrOwogICAgICAgICAgICAgU3RyaW5nIG1fbW9kZTsKQEAgLTgzLDEx
ICs4MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBm
cmllbmQgY2xhc3MgUnVuTG9vcFNldHVwOwotICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0
IHJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0
TW9kZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlKiwgY29uc3QgTW9kZVByZWRpY2F0ZSYsIFdhaXRNb2RlKTsKIAog
ICAgICAgICAvLyBSdW5zIGFueSBjbGVhbiB1cCB0YXNrcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4g
dGhlIHF1ZXVlIGFuZCByZXR1cm5zLgogICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIGNh
bGxlZCB3aGVuIHRoZSBjb250ZXh0IGlzIGNsb3NlZCBvciBsb29wIGhhcyBiZWVuIHRlcm1pbmF0
ZWQuCi0gICAgICAgIHZvaWQgcnVuQ2xlYW51cFRhc2tzKFdvcmtlckdsb2JhbFNjb3BlKik7Cisg
ICAgICAgIHZvaWQgcnVuQ2xlYW51cFRhc2tzKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKik7
CiAKICAgICAgICAgYm9vbCBpc0JlaW5nRGVidWdnZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVn
Q291bnQgPj0gMTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwCmluZGV4IDNkNmUw
YjdhZjAxZTIxODVlMWM5ZmY5ZGIwN2ZmZDMwZWRkZDIxNzguLjM5MDhiZGYzYTI5NmM4MWI2ZjRi
YThlOGUwOGUzZmM1ODJlZTVlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwCkBA
IC0yOCwyNyArMjgsNzYgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgotI2luY2x1ZGUgIldvcmtsZXRPcHRpb25zLmgiCisjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAi
V29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHku
aCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3Nz
VGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2xldCk7
CiAKLVJlZjxXb3JrbGV0PiBXb3JrbGV0OjpjcmVhdGUoKQorV29ya2xldDo6V29ya2xldChEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtsZXQoKSk7CiB9CiAKLVdvcmtsZXQ6OldvcmtsZXQo
KQorV29ya2xldDo6fldvcmtsZXQoKSA9IGRlZmF1bHQ7CisKK0RvY3VtZW50KiBXb3JrbGV0Ojpk
b2N1bWVudCgpCit7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworfQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd29ya2xldHMtMS8j
ZG9tLXdvcmtsZXQtYWRkbW9kdWxlCit2b2lkIFdvcmtsZXQ6OmFkZE1vZHVsZShjb25zdCBTdHJp
bmcmIG1vZHVsZVVSTFN0cmluZywgV29ya2xldE9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJf
cyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFVSTCBtb2R1bGVVUkwgPSBkb2N1
bWVudC0+Y29tcGxldGVVUkwobW9kdWxlVVJMU3RyaW5nKTsKKyAgICBpZiAoIW1vZHVsZVVSTC5p
c1ZhbGlkKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgU3ludGF4RXJy
b3IsICJNb2R1bGUgVVJMIGlzIGludmFsaWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9wcm94aWVzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wcm94aWVzLmFwcGVu
ZFZlY3RvcihjcmVhdGVHbG9iYWxTY29wZXMoKSk7CisKKyAgICBhdXRvIHBlbmRpbmdUYXNrcyA9
IFdvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShwcm9taXNlKSwgbV9w
cm94aWVzLnNpemUoKSk7CisgICAgbV9wZW5kaW5nVGFza3NTZXQuYWRkKHBlbmRpbmdUYXNrcy5j
b3B5UmVmKCkpOworCisgICAgZm9yIChhdXRvJiBwcm94eSA6IG1fcHJveGllcykgeworICAgICAg
ICBwcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW3BlbmRpbmdUYXNr
cyA9IHBlbmRpbmdUYXNrcy5jb3B5UmVmKCksIG1vZHVsZVVSTCA9IG1vZHVsZVVSTC5pc29sYXRl
ZENvcHkoKSwgY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzLCBwZW5kaW5nQWN0aXZp
dHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb3duY2FzdDxXb3JrbGV0R2xvYmFsU2Nv
cGU+KGNvbnRleHQpLmZldGNoQW5kSW52b2tlU2NyaXB0KG1vZHVsZVVSTCwgY3JlZGVudGlhbHMs
IFtwZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyksIHBlbmRpbmdBY3Rpdml0eSA9
IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlv
bikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcGVuZGluZ1Rh
c2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3MpLCBleGNlcHRpb24gPSBjcm9zc1RocmVhZENvcHko
ZXhjZXB0aW9uKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgp
IG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcGVuZGluZ1Rhc2tzLT5hYm9ydChXVEZNb3ZlKCpleGNlcHRpb24pKTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGlu
Z1Rhc2tzLT5kZWNyZW1lbnRDb3VudGVyKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAg
fQorfQorCit2b2lkIFdvcmtsZXQ6OmZpbmlzaFBlbmRpbmdUYXNrcyhXb3JrbGV0UGVuZGluZ1Rh
c2tzJiB0YXNrcykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCht
X3BlbmRpbmdUYXNrc1NldC5jb250YWlucygmdGFza3MpKTsKKworICAgIG1fcGVuZGluZ1Rhc2tz
U2V0LnJlbW92ZSgmdGFza3MpOwogfQogCi12b2lkIFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVu
dCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorY29uc3QgY2hhciogV29ya2xldDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEFkZCBwcm9wZXIgaW1wbGVtZW50
YXRpb24uCi0gICAgVU5VU0VEX1BBUkFNKG1vZHVsZVVSTCk7Ci0gICAgcHJvbWlzZS5yZXNvbHZl
KCk7CisgICAgcmV0dXJuICJXb3JrbGV0IjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldC5oCmluZGV4IGIyYmVkYzY1ODY1Yjc0ZjVmOTk1NmYwNGNm
Y2NjM2Y4MzUxOWYyZTEuLjQxNjg2NzRjNzNiMjk5MDliYTYyOTYyNTcyMWIzODA1M2UyMjdiZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKQEAgLTI1LDI3ICsyNSw0NSBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkNvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5o
IgorI2luY2x1ZGUgIldvcmtsZXRPcHRpb25zLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBXb3JrbGV0R2xv
YmFsU2NvcGVQcm94eTsKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3M7CiAKLXN0cnVjdCBXb3Jr
bGV0T3B0aW9uczsKLQotY2xhc3MgV29ya2xldCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXQ+
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKK2NsYXNzIFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291
bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFdvcmtsZXQ+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFdvcmtsZXQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V29ya2xldD4gY3Jl
YXRlKCk7Ci0gICAgdmlydHVhbCB+V29ya2xldCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5X
b3JrbGV0KCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZE1vZHVsZShEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJik7CisgICAgdmlydHVhbCB2b2lkIGFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1v
ZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwor
CisgICAgdm9pZCBmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdUYXNrcyYpOworICAg
IERvY3VtZW50KiBkb2N1bWVudCgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxXb3JrbGV0R2xv
YmFsU2NvcGVQcm94eT4+JiBwcm94aWVzKCkgY29uc3QgeyByZXR1cm4gbV9wcm94aWVzOyB9CiAK
IHByb3RlY3RlZDoKLSAgICBXb3JrbGV0KCk7CisgICAgZXhwbGljaXQgV29ya2xldChEb2N1bWVu
dCYpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpID0gMDsKKworICAgIC8vIEFjdGl2ZURPTU9i
amVjdC4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7
CisKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gbV9wcm94aWVzOwor
ICAgIEhhc2hTZXQ8UmVmUHRyPFdvcmtsZXRQZW5kaW5nVGFza3M+PiBtX3BlbmRpbmdUYXNrc1Nl
dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dC5pZGwKaW5kZXggMGI3NzRjMjc0YWFmMjBlMGNjODgzNzcyNzFjNzE2YTAwZmFmOWU2MS4uMjkz
Y2YwNmUxNTU2ZTliNTc3YTJhNGQxOTU4OGQxNjgwNmFiZWU1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldC5pZGwKQEAgLTI0LDggKzI0LDEwIEBACiAqLwogCiBbCisgICAgQWN0aXZlRE9N
T2JqZWN0LAogICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEdsb2JhbD1Xb3JrbGV0LAogICAgIFNr
aXBWVGFibGVWYWxpZGF0aW9uCiBdIGludGVyZmFjZSBXb3JrbGV0IHsKLSAgICBbQ2FsbFdpdGg9
RG9jdW1lbnRdIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3RyaW5nIG1vZHVsZVVS
TCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IGFkZE1vZHVsZShVU1ZTdHJpbmcgbW9kdWxlVVJMLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9u
cyBvcHRpb25zKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcAppbmRleCAzYjc1ODJhZmZjZDA0YjE0NjI5MGYzYTc0Njg2NzM0YWM2OTBmZWYy
Li5mYjhiYWE1ZGVmYzllODc1M2YwYzQyZWVjZmY5YjY0ZWUzMjM0MDE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI3LDggKzI3LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
IAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU1dvcmtsZXRH
bG9iYWxTY29wZS5oIgpAQCAtMzYsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
UG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrZXJFdmVudExv
b3AuaCIKLSNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9j
ay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgpAQCAtNDcs
MTAgKzQ0LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChXb3JrbGV0R2xvYmFsU2NvcGUpOwogCitXb3JrbGV0R2xvYmFsU2NvcGU6
OldvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCkKKyAgICA6IG1fc2NyaXB0
KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHRoaXMpKQorICAgICwgbV90b3BP
cmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwod2luZG93
VVJMKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgp
LmFkZCh0aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0KTsKKwor
ICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUo
bV90b3BPcmlnaW4uY29weVJlZigpKSk7Cit9CisKIFdvcmtsZXRHbG9iYWxTY29wZTo6V29ya2xl
dEdsb2JhbFNjb3BlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPEpTQzo6Vk0+JiYgdm0sIFNjcmlw
dFNvdXJjZUNvZGUmJiBjb2RlKQogICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVu
dCkpCiAgICAgLCBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRDb250cm9sbGVyPihX
VEZNb3ZlKHZtKSwgdGhpcykpCiAgICAgLCBtX3RvcE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlVW5pcXVlKCkpCisgICAgLCBtX3VybChjb2RlLnVybCgpKQogICAgICwgbV9jb2RlKFdURk1v
dmUoY29kZSkpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBhbGxXb3JrbGV0R2xvYmFsU2NvcGVz
U2V0KCkuYWRkKHRoaXMpOwpAQCAtNjEsNyArNzAsNyBAQCBXb3JrbGV0R2xvYmFsU2NvcGU6Oldv
cmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBT
YwogICAgIEFTU0VSVChkb2N1bWVudC5wYWdlKCkpOwogCiAgICAgc2V0U2VjdXJpdHlPcmlnaW5Q
b2xpY3koU2VjdXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShtX3RvcE9yaWdpbi5jb3B5UmVmKCkp
KTsKLSAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJp
dHlQb2xpY3k+KFVSTCB7IG1fY29kZS51cmwoKSB9LCAqdGhpcykpOworICAgIHNldENvbnRlbnRT
ZWN1cml0eVBvbGljeShtYWtlVW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGljeT4oVVJMIHsgdGhp
cy0+dXJsKCkgfSwgKnRoaXMpKTsKIH0KIAogV29ya2xldEdsb2JhbFNjb3BlOjp+V29ya2xldEds
b2JhbFNjb3BlKCkKQEAgLTExMyw3ICsxMjIsOCBAQCBTdHJpbmcgV29ya2xldEdsb2JhbFNjb3Bl
Ojp1c2VyQWdlbnQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKIHZvaWQgV29ya2xldEdsb2JhbFNj
b3BlOjpldmFsdWF0ZSgpCiB7Ci0gICAgbV9zY3JpcHQtPmV2YWx1YXRlKG1fY29kZSk7CisgICAg
aWYgKG1fY29kZSkKKyAgICAgICAgbV9zY3JpcHQtPmV2YWx1YXRlKCptX2NvZGUpOwogfQogCiBi
b29sIFdvcmtsZXRHbG9iYWxTY29wZTo6aXNKU0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0CkBA
IC0xMzUsNyArMTQ1LDcgQEAgVVJMIFdvcmtsZXRHbG9iYWxTY29wZTo6Y29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJiB1cmwsIEZvcmNlVVRGOCkgY29uc3QKIHsKICAgICBpZiAodXJsLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gVVJMKCk7Ci0gICAgcmV0dXJuIFVSTChtX2NvZGUudXJsKCksIHVy
bCk7CisgICAgcmV0dXJuIFVSTCh0aGlzLT51cmwoKSwgdXJsKTsKIH0KIAogdm9pZCBXb3JrbGV0
R2xvYmFsU2NvcGU6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1u
TnVtYmVyLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQpAQCAtMTcxLDUgKzE4MSwx
MSBAQCBSZWZlcnJlclBvbGljeSBXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkg
Y29uc3QKICAgICByZXR1cm4gUmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXI7CiB9CiAKK3ZvaWQg
V29ya2xldEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmLCBGZXRj
aFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOworICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50YXRpb24uCisgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4
IDI1ZDU0OWFjNGEwYWE2ZmY3NTI4NzU1ZDcwNDdjODE0ZWU3ZGM0MDQuLjk4MTQxNTlkZTJiNTAz
YTgwOGM4MDg3MDQyZjY3MzUzNjdiZmYzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0yNiwzMCArMjYsMzIgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2lu
Y2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJX
b3JrZXJFdmVudExvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5o
IgorI2luY2x1ZGUgIldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50
aW1lRmxhZ3MuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3Jv
dXA7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7Ci1jbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjsKIAogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZSB7IH07CiB1c2luZyBX
b3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxXb3JrbGV0R2xv
YmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBXb3Jr
bGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGU+LCBw
dWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXRHbG9iYWxTY29w
ZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNjb3BlKCk7CkBAIC01Nywx
MSArNTksMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZXNTZXQgPSBI
YXNoU2V0PGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSo+OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0JiBhbGxXb3JrbGV0R2xvYmFsU2NvcGVzU2V0KCk7
CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogCiAgICAgRXZlbnRMb29w
VGFza0dyb3VwJiBldmVudExvb3AoKSBmaW5hbDsKIAotICAgIGNvbnN0IFVSTCYgdXJsKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb2RlLnVybCgpOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQogCiAgICAgdm9pZCBldmFsdWF0ZSgpOwogCkBA
IC03MCw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAg
dXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciog
c2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICBXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KIAogICAg
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29s
ZU1lc3NhZ2U+JiYpIGZpbmFsOwogCkBAIC03OSw2ICs4NiwxMCBAQCBwdWJsaWM6CiAKICAgICBT
b2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9
CiAKKyAgICAvLyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS4KKyAgICBUaHJlYWQqIHVuZGVy
bHlpbmdUaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgYm9v
bCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQ2xvc2luZzsgfQorCiAgICAg
Ym9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAg
Ym9vbCBpc1NlY3VyZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCkBA
IC04Niw3ICs5NywxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRl
c3RydWN0aW9uKCk7CiAKKyAgICB2b2lkIGZldGNoQW5kSW52b2tlU2NyaXB0KGNvbnN0IFVSTCYs
IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CisgICAgV29ya2xldEdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgd2luZG93VVJMKTsKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQm
LCBSZWY8SlNDOjpWTT4mJiwgU2NyaXB0U291cmNlQ29kZSYmKTsKICAgICBXb3JrbGV0R2xvYmFs
U2NvcGUoY29uc3QgV29ya2xldEdsb2JhbFNjb3BlJikgPSBkZWxldGU7CiAgICAgV29ya2xldEds
b2JhbFNjb3BlKFdvcmtsZXRHbG9iYWxTY29wZSYmKSA9IGRlbGV0ZTsKQEAgLTEzNiw4ICsxNTAs
MTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V29ya2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3Jv
dXA7CiAKKyAgICBVUkwgbV91cmw7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgbV9qc1J1bnRpbWVG
bGFnczsKLSAgICBTY3JpcHRTb3VyY2VDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxTY3JpcHRT
b3VyY2VDb2RlPiBtX2NvZGU7CisgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZhbHNlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC0xNDUsNCArMTYxLDMgQEAgcHJpdmF0ZToKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlKQog
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKTsgfQogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAppbmRleCBkNzU5ZjBjZTFkMTZmODY5MTg2MDEy
Nzc2ZjBkYjE2YjYxYmFhNDc4Li5iZjA3MTM4NGEzZjMwOGZmNmM2NDVjOTU4NGNiM2IxY2I5ZTVl
MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5p
ZGwKQEAgLTI2LDggKzI2LDYgQEAKIFsKICAgICBDdXN0b21Qcm94eVRvSlNPYmplY3QsCiAgICAg
RXhwb3NlZD1Xb3JrbGV0LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9Q1NTUGFpbnRpbmdBUEksCi0g
ICAgQ29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSSwKICAgICBKU0xlZ2FjeVBhcmVudD1KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UsCiAgICAgSW1wbGljaXRUaGlzLAogICAgIElzSW1tdXRhYmxl
UHJvdG90eXBlRXhvdGljT2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXRHbG9iYWxTY29wZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFjNWQ5MWNjN2QwMjQyMGI1ZmFm
ZjIxOTFjMGVlZjhmZjlhNWQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXb3JrbGV0UGVuZGluZ1Rhc2tzOworCitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4gewor
cHVibGljOgorICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZVByb3h5KCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3Bl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCA9
IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZmU1ZDc2MWFmNDZm
MjYxNDExNzkwNGFjMTA0YzMwNDkxMTQ1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5nVGFza3MuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXb3JrbGV0UGVuZGluZ1Rhc2tzOjpXb3JrbGV0UGVuZGluZ1Rhc2tzKFdvcmts
ZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3Vu
dGVyKQorICAgIDogbV93b3JrbGV0KG1ha2VXZWFrUHRyKHdvcmtsZXQpKQorICAgICwgbV9wcm9t
aXNlKFdURk1vdmUocHJvbWlzZSkpCisgICAgLCBtX2NvdW50ZXIoY291bnRlcikKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworfQorCit2b2lkIFdvcmtsZXRQZW5kaW5nVGFza3M6OmFi
b3J0KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCisgICAgaWYgKG1fY291bnRlciA9PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
b3VudGVyID0gLTE7CisgICAgbV9wcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOwor
ICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgIG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tz
KCp0aGlzKTsKK30KKwordm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpkZWNyZW1lbnRDb3VudGVy
KCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9
PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLS1tX2NvdW50ZXI7CisgICAgaWYgKCFtX2Nv
dW50ZXIpIHsKKyAgICAgICAgbV9wcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgaWYgKG1fd29y
a2xldCkKKyAgICAgICAgICAgIG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tzKCp0aGlzKTsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzNkNmJiYWJlMGU5Yjkz
ZTI4M2EzMjg2NzE1Y2E4OWRjMjZjMDljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdvcmtsZXQ7CisKKy8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3Jr
bGV0cy8jcGVuZGluZy10YXNrcy1zdHJ1Y3QKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3MgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xldFBlbmRpbmdUYXNrcz4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V29ya2xldFBlbmRpbmdUYXNrcz4gY3JlYXRlKFdvcmtsZXQmIHdv
cmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xldFBlbmRpbmdUYXNrcyh3
b3JrbGV0LCBXVEZNb3ZlKHByb21pc2UpLCBjb3VudGVyKSk7CisgICAgfQorCisgICAgdm9pZCBh
Ym9ydChFeGNlcHRpb24mJik7CisgICAgdm9pZCBkZWNyZW1lbnRDb3VudGVyKCk7CisKK3ByaXZh
dGU6CisgICAgV29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYsIGludCBjb3VudGVyKTsKKworICAgIFdlYWtQdHI8V29ya2xldD4gbV93b3JrbGV0
OworICAgIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiBtX3Byb21pc2U7CisgICAgaW50IG1fY291
bnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyMGE2Zjg1NjE4
NThhZGZiZTJlMmJjMThlYmY3MTUwYjk3YWQxNGY4Li4xN2RmNWUxZjNjZjA2NTcxNGJjZWY3NWVk
ODVmY2FkNTM4ZjZlODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw4ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKIAotI2lmIEVOQUJM
RShDU1NfUEFJTlRJTkdfQVBJKQotCisjaW5jbHVkZSAiSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgpAQCAtNTYsNiArNTUsMTEgQEAgV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJlZjxWTT4mJiB2bSwgV29y
a2xldEdsb2JhbFNjb3AKICAgICBKU1ZNQ2xpZW50RGF0YTo6aW5pdE5vcm1hbFdvcmxkKG1fdm0u
Z2V0KCkpOwogfQogCitXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENvbnRy
b2xsZXIoV29ya2xldEdsb2JhbFNjb3BlKiB3b3JrbGV0R2xvYmFsU2NvcGUpCisgICAgOiBXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlcihWTTo6Y3JlYXRlKCksIHdvcmtsZXRHbG9iYWxTY29wZSkKK3sK
K30KKwogV29ya2xldFNjcmlwdENvbnRyb2xsZXI6On5Xb3JrbGV0U2NyaXB0Q29udHJvbGxlcigp
CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0oKSk7CkBAIC0xNDUsMTAgKzE0OSwxOSBAQCB2
b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICBpZiAoaXNFeGVj
dXRpb25Gb3JiaWRkZW4oKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKENTU19QQUlO
VElOR19BUEkpCiAgICAgaWYgKGlzPFBhaW50V29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRH
bG9iYWxTY29wZSkpIHsKICAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU1BhaW50V29y
a2xldEdsb2JhbFNjb3BlUHJvdG90eXBlLCBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLCBQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZT4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgor
CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoaXM8QXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgeworICAgICAgICBpbml0U2NyaXB0V2l0aFN1YmNs
YXNzPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUsIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTE5Niw1ICsy
MDksNjIgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2V0RXhjZXB0aW9uKEpTQzo6
RXhjZXB0aW9uKiBleGNlcHRpb24pCiAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7CiB9CiAKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OnJlbGVhc2VIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLnJlbGVhc2VBY2Nlc3Mo
KTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3Mo
KQoreworICAgIG1fdm0tPmhlYXAuYWNxdWlyZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyOjphZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRp
bWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIGF1dG8gcHJv
Y2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGltZXIpIHsKKyAgICAgICAgaWYgKCF0
aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGltZXItPmFkZFRpbWVyU2V0Tm90
aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhl
YXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAu
ZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmRlZmVycmVk
V29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVt
b3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAo
SlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHRpbWVyLT5yZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihjYWxs
YmFjayk7CisgICAgfTsKKworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0
eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNh
bGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIo
KSk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9u
VGVybWluYXRpb24oKQoreworICAgIGlmIChtX2lzVGVybWluYXRpbmdFeGVjdXRpb24pCisgICAg
ICAgIHJldHVybjsKKworICAgIHsKKyAgICAgICAgLy8gVGhlIG11dGV4IHByb3ZpZGVzIGEgbWVt
b3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQgb25jZQorICAgICAgICAvLyB0ZXJtaW5hdGlvbiBp
cyBzY2hlZHVsZWQsIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSB3aWxsCisgICAgICAgIC8vIGFj
Y3VyYXRlbHkgcmVmbGVjdCB0aGF0IGxleGljYWxHbG9iYWxPYmplY3Qgd2hlbiBjYWxsZWQgZnJv
bSBhbm90aGVyIHRocmVhZC4KKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NjaGVk
dWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAgICAgIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiA9
IHRydWU7CisgICAgfQorICAgIG1fdm0tPm5vdGlmeU5lZWRUZXJtaW5hdGlvbigpOworfQorCiti
b29sIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29u
c3QKK3sKKyAgICAvLyBTZWUgY29tbWVudHMgaW4gc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlv
biByZWdhcmRpbmcgbXV0ZXggdXNhZ2UuCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Nj
aGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAgcmV0dXJuIG1faXNUZXJtaW5hdGluZ0V4ZWN1
dGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBlMzZkMmEy
NDJiZjU0NjRmYTI3Y2YzZGE5YWI1Mjg0ZjAwMDRkNmVlLi42ZDQzY2U1ZjlmZmQyYTcwYWYwYmY2
ZTVhZWU1NGNkOGZhYzcyZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI1LDggKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1ZGUgIldvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dl
ci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CkBAIC00Niw5ICs0NSwxMSBAQCBjbGFzcyBXb3Jr
bGV0Q29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmts
ZXRDb25zb2xlQ2xpZW50OwogCi1jbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CisvLyBG
SVhNRTogV2Ugc2hvdWxkIHNoYXJlIG1vcmUgY29kZSB3aXRoIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIuCitjbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciA6IHB1YmxpYyBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIGV4
cGxpY2l0IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAg
IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJlZjxKU0M6OlZNPiYmLCBXb3JrbGV0R2xvYmFsU2Nv
cGUqKTsKICAgICB+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKTsKIApAQCAtNjQsNiArNjUsMTUg
QEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpOwogICAgIHZvaWQgZGlzYWJsZVdlYkFzc2VtYmx5KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKTsKIAorICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFj
cXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CisKKyAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0
aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFs
OworICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1l
cjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisKKyAgICB2b2lkIHNjaGVkdWxl
RXhlY3V0aW9uVGVybWluYXRpb24oKTsKKyAgICBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24o
KSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9p
ZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRp
b24+JiByZXR1cm5lZEV4Y2VwdGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2Ug
PSBudWxscHRyKTsKIApAQCAtODcsNyArOTcsOCBAQCBwcml2YXRlOgogICAgIFdvcmtsZXRHbG9i
YWxTY29wZSogbV93b3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmts
ZXRDb25zb2xlQ2xpZW50PiBtX2NvbnNvbGVDbGllbnQ7CiAgICAgSlNDOjpTdHJvbmc8SlNXb3Jr
bGV0R2xvYmFsU2NvcGU+IG1fd29ya2xldEdsb2JhbFNjb3BlV3JhcHBlcjsKKyAgICBtdXRhYmxl
IExvY2sgbV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2s7CisgICAgYm9vbCBtX2lzVGVybWluYXRp
bmdFeGVjdXRpb24geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YTEwMWMzOTU5M2NjNGMx
NTRjNzQ1ZjZkNzk3MzdhMDJhOTIzZjZkLi4wYjlhYjFkY2UzNGE1MjBkODJlMmZhZDVmNWQwNmE4
NjllZjc0ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2
LDcgQEAgcHVibGljOgogICAgICAgICBzdG9wKCk7CiAgICAgfQogCi0gICAgdm9pZCBzdGFydCgp
IHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsgfQorICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGlu
YXRpb24tPnN0YXJ0KHsgfSk7IH0KICAgICB2b2lkIHN0b3AoKSB7IG1fZGVzdGluYXRpb24tPnN0
b3AoKTsgfQogICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+aXNQ
bGF5aW5nKCk7IH0KICAgICB1bnNpZ25lZCBmcmFtZXNQZXJCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX2Rlc3RpbmF0aW9uLT5mcmFtZXNQZXJCdWZmZXIoKSA7IH0KQEAgLTEyNSw3ICsxMjUsNyBA
QCBwcml2YXRlOgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9u
OwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVmUHRyPEF1
ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDA2OTQ1YmFmZDVkMTg5YzdhMGY5
YzcyNDAyYmI4ODlkYzgwN2Y2ZjQuLjgyMTM4MDBiOWYxMGM1ODI2MGUwN2E3OTBmN2NiMjBhN2Uw
ZWEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTQzLDEwICs0
MywxMCBAQCB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogdXNpbmcgQXVkaW9E
ZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb247CiB1c2luZyBBdWRpb0lPQ2Fs
bGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLAorUmVmPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAgICAgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7Ci0g
ICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFj
aywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRD
aGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOwogfQogCiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTc3LDggKzc3LDkgQEAgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KCkKICAgICB9KTsKIH0KIAot
dm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3ZvaWQgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4m
Jik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKIHsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJU
aHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAogICAgICAgICBNZXNzYWdl
czo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6
UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKQEAgLTg5LDE5ICs5MCwzMSBAQCB2b2lkIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAg
ICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVz
dGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlp
bmcpLCAwKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBudWxscHRyOwogfQogCiB2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktp
dDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHJl
bmRlcmluZyBvbiB0aGUgbWFpbiB0aHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgbm90IGFjdGl2
ZSwgd2hpY2ggaXMgbGlrZWx5IG5vdCBhIGdvb2QgaWRlYS4KKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBB
U1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CiAgICAgYXV0byBhdWRp
b0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUo
KSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCiAg
ICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRh
LmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3Mp
OwogCi0gICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0
YS5mcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbik7Ci0KLSAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgIGF1dG8gZG9SZW5kZXIgPSBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhdWRpb0J1cyA9IFdURk1vdmUoYXVkaW9CdXMpLCBmcmFt
ZXNUb1Byb2Nlc3MgPSBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlv
biA9IGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbl0geworICAgICAgICBtX2NhbGxiYWNrLnJl
bmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7
CisgICAgfTsKKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1f
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbZG9SZW5kZXIgPSBXVEZNb3ZlKGRvUmVuZGVyKSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgZG9SZW5kZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9CiB9
CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmco
Ym9vbCBpc1BsYXlpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAppbmRleCBhZGE2
ZmVlZmYzNzQzMGYzYzRkZDM3ZjEzYzdlM2E0ZTc2NmEzOWRhLi45MDdlY2Y1YTc3ZjQyYjk0Nzg5
MGJkZjNhMTdlMThlY2ZiNWFhNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgK
QEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6
QXVkaW9CdXM7CiAgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0Nh
bGxiYWNrOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpOwpA
QCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6QXVk
aW9EZXN0aW5hdGlvbgotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0
KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKICAgICBib29sIGlzUGxh
eWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CiAgICAgZmxvYXQgc2FtcGxl
UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQpAQCAtNzMsNiAr
NzMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVzUGVyQnVmZmVyIHsgMCB9Owog
ICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKICAg
ICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9u
PHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmU4NjFhMWU0ZTMxZTE0NzgyYTJiOWU4MzE5
OGMxNjdhNTk0NjExMy4uZDVhZWYxNTM0YWQyMzY1ZDIxMzdhMTdiNmY2ZDQ0ZTFlZjg1MTllYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2Vi
TWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFC
TEUoV0VCX0FVRElPKQotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+
IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorUmVmPFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVz
dGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5z
aWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCmluZGV4IDgxN2M0YzI5YjE3MzJmNDVmOTBlMjE1
NWQ2NWNlZTg0N2MxN2JlZTIuLjZiN2I5Y2U2MDNhODczOWU3MWQ5MDQ3NWZjYzc4NzI2OGY2ZDlm
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVk
aWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNp
ZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
ayYsCisgICAgUmVmPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGlu
YXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlOwogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXgg
ZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNjNmJjYTdiNjUzYTY1MjdiNy4uZWJiYjNiZWE2ZWRiYjQ3
YmNiNGUyZDBiMjk3ZmNkMDVlYmE2MzI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bQpAQCAtNjksNyArNjksNyBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kg
ZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJf
QVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlv
RGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1
dERldmljZUlkLAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0
aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJ
ZCwKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZp
Y2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1w
bGVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRmNGExZjc4NTA0
ZGJlMjMwYTk3N2U5N2ZkMjU5ZDI0ZTRmOTIwMzEuLmUwMzQyM2Q3NTNjYjE5ODBlZTNlYjg4OTJm
YTI4NTFlZTQ5NjI1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNjUs
NyArNjUsNyBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBw
dWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICAg
ICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0
dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA0ZDYzZjQw
Y2ZlZDc3MmE1NmMyNTRjMDUzMTA3MzI1YTJkOWFiNmUzLi43NDYxOWRlNDhlNjE0MWFkN2Q5YmVk
MjZjMDE2N2Y4MWUxNWQ5YjRlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCkBAIC04MzgsNiArODM4LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVu
dGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAg
IFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxl
ZDpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CiB9
CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAtOTMxLDcgKzkzMiw2IEBAIHN0YXRp
YyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgW3By
ZWZlcmVuY2VzIHNldFdlYkF1ZGlvRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRN
b2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFibGVkOllFU107Ci0gICAgW3ByZWZlcmVuY2VzIHNl
dEF1ZGlvV29ya2xldEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TWVkaWFTb3Vy
Y2VFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldFNvdXJjZUJ1ZmZlckNoYW5nZVR5
cGVFbmFibGVkOllFU107CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmlu
ZGluZ3MvbWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpp
bmRleCAzMWFlYzM4MmU3YmEzYTNhYmY5ZjI3MTIyZmI4NGUyMDU3ODgwN2M0Li4xZDA5MTNiNGVm
MDU5YTRlMWU3OTA2YzVlYjQ5ZGVkYjY2NDY0NTk1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
aW5kaW5ncy9tYWluLnB5CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgICAgICBleGl0X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9j
b2RlCiAKLSAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5w
dXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxf
bWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUpOgorICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxm
LCBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1l
bnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwg
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUp
OgogICAgICAgICBpZGxfZmlsZXNfbGlzdCA9IHRlbXBmaWxlLm1rc3RlbXAoKQogICAgICAgICBm
b3IgaW5wdXRfZmlsZSBpbiBvcy5saXN0ZGlyKGlucHV0X2RpcmVjdG9yeSk6CiAgICAgICAgICAg
ICAobmFtZSwgZXh0ZW5zaW9uKSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKQEAgLTk4
LDYgKzk4LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICctLXNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzZXJ2aWNld29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS13b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLAogICAgICAgICAgICAgICAgJy0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCisgICAg
ICAgICAgICAgICAnLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBh
dWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAg
ICctLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCB0ZXN0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS12YWxpZGF0ZUFnYWluc3RQYXJzZXIn
XQogCkBAIC0yMDEsNiArMjAyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwnCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSA9ICdQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCisgICAgICAg
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHRlc3RnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQmluZGluZ1Rlc3RHbG9iYWxDb25zdHJ1Y3RvcnMu
aWRsJwogCiAgICAgICAgIHdvcmtfZGlyZWN0b3J5ID0gdGVtcGZpbGUubWtkdGVtcCgpCkBAIC0y
MTMsOSArMjE1LDEwIEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVj
dG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzZXJ2
aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJl
Y3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgd29y
a2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgcGFpbnR3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJl
Y3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgcGFp
bnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQorICAgICAgICBhdWRp
b3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3Jr
X2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5
LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAg
IHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2Rp
cmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB0
ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogCi0gICAgICAgIGlmIHNlbGYu
Z2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9m
aWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwg
c2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAgICAgICBp
ZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwg
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVu
ZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgICAgICBwcmlu
dCgnRmFpbGVkIHRvIGdlbmVyYXRlIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZS4nKQog
ICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSh3b3JrX2RpcmVjdG9yeSkKICAgICAgICAgICAgIHJl
dHVybiAtMQpAQCAtMjM1LDYgKzIzOCw4IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
ICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRl
dGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2Rp
cmVjdG9yeSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToK
ICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKKyAgICAgICAgICAgIGlm
IHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwg
aW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpOgorICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAg
ICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGly
ZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogCg==
</data>
<flag name="commit-queue"
          id="426122"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410236</attachid>
            <date>2020-10-01 09:07:38 -0700</date>
            <delta_ts>2020-10-01 10:36:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20201001090737.patch</filename>
            <type>text/plain</type>
            <size>167945</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzZTNkOGYwY2Yw
N2JkMzQ3YjUzNzVkNGQ1MzNmYjdmYjJiODQwNy4uNDEwOWU3ZWFkMWNmZTM2YmRmYTA0YjkyNWQx
MjQzMmI3MjE3NjI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0xMC0wMSAgQWRyaWFuIFBl
cmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IEFkZCBtaXNzaW5nIGd1YXJkIGFyb3VuZCBNb2Rlcm5QYXRoIHVzYWdlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
NTM1ODdjMGYxNzVlYzk2ODhmMWU1N2NlYjc3MDgxNGNkOGQ3Y2ZjLi5kMDVkZTViZDRkODA2MGM4
MDU2NjAzZDAxZTQwMzhmMTIyMDMwMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIw
LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgdG8gbWF0Y2ggd2hhdCB3YXMgZG9uZSBpbiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuCisg
ICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBpcyB1c2VkIHdoZW4gdGhlIEdQVSBw
cm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbjo6c3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oOgorCiAyMDIwLTEwLTAxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVJlY29yZGVyIHNob3VsZCBzdXBw
b3J0IE1lZGlhUmVjb3JkZXJPcHRpb25zLm1pbWVUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThmZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5
NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRp
b1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbUHJlZmVyZW5jZXNd
IEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzEx
N2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEw
Mjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdhY3kgc2hvdWxkIGNhbGwgUGFnZTo6Zmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBm
NWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2JhODkzZjk3Li5hM2UxZTYxZGJjZDExNWRk
MmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApA
QCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1
bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKICAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKKyAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX0FV
RElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVlNDYzNTU0NmY3NmNmOTBlLi4xOTQzODAy
M2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYsNiArMTc2Nyw3IEBAIHNldChERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9BdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJ
RVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9JTkNMVURFX0RJUkVDVE9SSUVTICR7
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMs
OCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICAgICAgLS1kZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSkKIGxpc3QoQVBQRU5E
IFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5kaW5ncykKIAogaWYgKEVOQUJMRV9XRUJJ
TlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFkY2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4
ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVkMjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDYgKzMzMCw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1w
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCisk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGExM2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4
ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEsNCArMSw1IEBACiAjIFRoaXMgZmls
ZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0
eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291cmNl
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRO
b2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4y
YzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYyMDYwNmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydQogU0VS
VklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogUEFJTlRXT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1Q
ID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNfRklMRSA9ICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApAQCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJ
RExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisg
ICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKICMKIElETF9J
TlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklM
RVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNf
U0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFU
VVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtl
ICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKIAkkKGZvcmVhY2gg
ZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+JChJRExfRklMRVNfVE1QKSQoTkwpKQot
CSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAt
LWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVND
UklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVz
RmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUg
JChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUg
JChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChX
SU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkg
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMg
IiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1p
ZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElE
TF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVN
RU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VC
U1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5U
V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtF
RklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmgg
OiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJ
RExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBF
TkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMyMmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2
Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmViZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcg
KzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlT
ZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBv
c2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMu
LmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKQEAgLTMxLDE1ICsz
MSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0Lmgi
CiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1Jl
ZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldChkb2N1bWVu
dCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiB3b3JrbGV0
OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxT
Y29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVHbG9iYWxTY29wZXMoKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7CisgICAgLy8gV2ViQXVkaW8gdXNlcyBh
IHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJuIHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVkaW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQo
KQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1ZGlvV29ya2xldDo6cHJveHkoKSBjb25z
dAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5wcm94aWVzKCk7CisgICAgaWYgKHByb3hp
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNh
c3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHByb3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQw
NTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRkNDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaApAQCAt
MzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVkaW9Xb3Jr
bGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7
CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxB
dWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOworCisgICAgQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7
CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3VtZW50Jik7CisKKyAgICAvLyBXb3JrbGV0
LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxT
Y29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAppbmRleCBiYzVlYThm
MGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3Li44MGM2YTcyNDAxODNjNDc1NzQ2Mjlj
ODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRp
b25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAg
RW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNGYyNjBlMjZmZDE4ODhhNmU0Yzk1ZTc4OTQ1NjZkOTk3ZjYzNzBl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgi
CisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSk7CisKK0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVh
ZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBXb3JrbGV0R2xv
YmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwpCisgICAgLCBtX3RocmVhZCh0aHJlYWQpCit7
CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cit9CisKK0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSA9IGRlZmF1bHQ7CisKK1RocmVhZCogQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlpbmdUaHJlYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJkMjMzYWY5MTcwZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNs
dWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVjdCBXb3JrbGV0UGFyYW1ldGVyczsKKworY2xh
c3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVk
aW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7CisgICAgfQorICAgIH5BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0
VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKKworICAgIGJvb2wgaXNBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJl
ZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7IH0KK3N0YXRpYyBib29sIGlz
VHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGUmIGNvbnRleHQpIHsgcmV0dXJu
IGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcwOTJhNGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1
YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRXhwb3NlZD1BdWRpb1dv
cmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCisgICAgQ29uZGl0aW9u
YWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBJbXBsaWNp
dFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QsCisgICAgSXNJbW11
dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblByb3RvdHlwZSwKKyAgICBHbG9iYWw9KFdvcmts
ZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIDog
V29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJbXBsZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyMTYxNGJiY2EyYmM5YTA1ZmIwZTk0YmFm
MWNlYmI2OGM5M2FhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwCkBAIC0wLDAgKzEsNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUg
IkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
V29ya2xldFBlbmRpbmdUYXNrcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0F1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eShBdWRpb1dvcmts
ZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQdHIod29ya2xldCkpCisgICAg
LCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3JrbGV0VGhyZWFkOjpjcmVhdGUoeyB3b3JrbGV0LmRv
Y3VtZW50KCktPnVybCgpIH0pKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAg
ICBtX3dvcmtsZXRUaHJlYWQtPnN0YXJ0KCk7Cit9CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5Ojp+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNj
b3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcmIG1v
ZGUpCit7CisgICAgbV93b3JrbGV0VGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFdU
Rk1vdmUodGFzayksIG1vZGUpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZhN2FkZjRmMjgzODAzYWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0
OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1
ZGlvV29ya2xldDsKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworY2xhc3MgQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlUHJveHkgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShB
dWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSh3b3JrbGV0KSk7CisgICAgfQorCisgICAgfkF1
ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KCk7CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2Vk
IGluIHRoZSBtYWluIHRocmVhZCB0byBwb3N0IHRhc2sgYmFjayB0byB0aGUgd29ya2xldCB0aHJl
YWQuCisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgZmluYWw7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3Jr
bGV0Jik7CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBXZWFrUHRyPEF1ZGlvV29ya2xldD4gbV93b3Jr
bGV0OworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fd29ya2xldFRocmVhZDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihX
ZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSkKK3N0YXRpYyBib29sIGlzVHlwZShj
b25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSYgcHJveHkpIHsgcmV0dXJuIHBy
b3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCmluZGV4IDU2
MjcxNDg2NjNmMDQyMThiMWU1NTA1MTc1YjA0OTVhNTQ2OTEyMDYuLjM0MGI4Y2FiMWQyNDM0MGY5
YTY2N2I0ZWE3NTJiYjVjN2YyYzMzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBb
CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9X
b3JrbGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0LAogICAgIEV4cG9zZWQ9
V2luZG93LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIFNlY3VyZUNvbnRleHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlT3B0aW9ucy5pZGwKaW5kZXggYTllMTliNjk1ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5
ZjExZjkwNS4uODcxYWVlMDAwZjhkNTBlYzRjMzA0NTcxOTdmNWIyYjQyZjA0ZDA3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0
aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlT3B0aW9ucy5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFi
bGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwKIF0gZGljdGlvbmFyeSBBdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJ
bnB1dHMgPSAxOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFk
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jOTc3ZjM5OTQ0ZjJiZWNiNzY4Yzg5NTZjYWY1ZWVhMmFkODhhMGMw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V29ya2xldFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgd2luZG93VVJMLmlz
b2xhdGVkQ29weSgpCisgICAgfTsKK30KKworQXVkaW9Xb3JrbGV0VGhyZWFkOjpBdWRpb1dvcmts
ZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBtX3Bh
cmFtZXRlcnMocGFyYW1ldGVycy5pc29sYXRlZENvcHkoKSkKK3sKK30KKwordm9pZCBBdWRpb1dv
cmtsZXRUaHJlYWQ6OnN0YXJ0KCkKK3sKKyAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAgICBSZWY8VGhyZWFkPiB0
aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTogQXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsK
KyAgICAgICAgd29ya2xldFRocmVhZCgpOworICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAg
ICAvLyBGb3JjZSB0aGUgVGhyZWFkIG9iamVjdCB0byBiZSBpbml0aWFsaXplZCBmdWxseSBiZWZv
cmUgc3RvcmluZyBpdCB0byBtX3RocmVhZCAoYW5kIGJlY29taW5nIHZpc2libGUgdG8gb3RoZXIg
dGhyZWFkcykuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKKyAgICBtX3RocmVhZCA9IFdU
Rk1vdmUodGhyZWFkKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJl
YWQoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisjaWYg
VVNFKEdMSUIpCisgICAgR1JlZlB0cjxHTWFpbkNvbnRleHQ+IG1haW5Db250ZXh0ID0gYWRvcHRH
UmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBnX21haW5fY29udGV4dF9wdXNoX3RocmVh
ZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNlbmRpZgorCisgICAgV29ya2xldFNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXI7CisgICAgeworICAgICAgICBhdXRvIGxvY2sg
PSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7Cisg
ICAgICAgIG1fd29ya2xldEdsb2JhbFNjb3BlID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNy
ZWF0ZSgqdGhpcywgbV9wYXJhbWV0ZXJzKTsKKworICAgICAgICBzY3JpcHRDb250cm9sbGVyID0g
bV93b3JrbGV0R2xvYmFsU2NvcGUtPnNjcmlwdCgpOworCisgICAgICAgIGlmIChtX3J1bkxvb3Au
dGVybWluYXRlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVk
IGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0byBydW4uIFNpbmNlIHRoZSBjb250ZXh0
IGRpZG4ndCBleGlzdCB5ZXQsCisgICAgICAgICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKSBjb3Vs
ZG4ndCBiZSBjYWxsZWQgZnJvbSBzdG9wKCkuCisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVy
LT5zY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAgICAgICAgICBzY3JpcHRDb250
cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJ1bkV2
ZW50TG9vcCgpOworCisjaWYgVVNFKEdMSUIpCisgICAgZ19tYWluX2NvbnRleHRfcG9wX3RocmVh
ZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNlbmRpZgorCisgICAgUmVmUHRyPFRocmVh
ZD4gcHJvdGVjdG9yID0gbV90aHJlYWQ7CisKKyAgICBBU1NFUlQobV93b3JrbGV0R2xvYmFsU2Nv
cGUtPmhhc09uZVJlZigpKTsKKworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4g
d29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGU7CisgICAgeworICAgICAgICAvLyBNdXRleCBwcm90
ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBjaGFuZ2UgbV93b3Jr
ZXJHbG9iYWxTY29wZQorICAgICAgICAvLyB3aGlsZSBXb3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNj
ZXNzaW5nIGl0LgorICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9u
QW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAgICAgICAgLy8gRGVsYXkgdGhlIGRlc3Ry
dWN0aW9uIG9mIHRoZSBXb3JrZXJHbG9iYWxTY29wZSBjb250ZXh0IHVudGlsIGFmdGVyIHdlJ3Zl
IHVubG9ja2VkIHRoZQorICAgICAgICAvLyBtX3RocmVhZENyZWF0aW9uQW5kV29ya2VyR2xvYmFs
U2NvcGVNdXRleC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBkZXN0cnVjdGluZyB0aGUKKyAgICAg
ICAgLy8gY29udGV4dCB3aWxsIHRyaWdnZXIgdGhlIG1haW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5z
dCB1cyB0byBkZWxldGUgdGhlIFdvcmtlclRocmVhZAorICAgICAgICAvLyBvYmplY3QsIGFuZCB0
aGUgV29ya2VyVGhyZWFkIG9iamVjdCBvd25zIHRoZSBtdXRleCB3ZSBuZWVkIHRvIHVubG9jayBh
ZnRlciB0aGlzLgorICAgICAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUo
bV93b3JrbGV0R2xvYmFsU2NvcGUpOworICAgIH0KKworICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25t
ZW50IHdpbGwgZGVzdHJveSB0aGUgY29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBt
ZXNzYWdpbmcgcHJveHkuCisgICAgLy8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZl
IHBhc3QgdGhyZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9y
IG90aGVyd2lzZSBkZXN0cm95IHRoZW0uCisgICAgd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGUg
PSBudWxscHRyOworCisgICAgLy8gU2VuZCB0aGUgbGFzdCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJl
IERlcmVmJ2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0geyB9KTsKKworICAgIC8vIFRoZSB0
aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJlYWR5IGRlc3Ryb3llZCBmcm9tIG5vdGlmaWNhdGlvbiBu
b3csIGRvbid0IHRyeSB0byBhY2Nlc3MgInRoaXMiLgorICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7
Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpydW5FdmVudExvb3AoKQoreworICAgIC8v
IERvZXMgbm90IHJldHVybiB1bnRpbCB0ZXJtaW5hdGVkLgorICAgIG1fcnVuTG9vcC5ydW4obV93
b3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUyNzAyYzk4
ZmRmODNmOTc1Mjk0NGE0NTBjOTM0YWM4NTM3OTQ2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgKQEAgLTAsMCAr
MSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2VyUnVu
TG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGU7CisKK3N0cnVjdCBXb3JrbGV0UGFyYW1ldGVycyB7CitwdWJsaWM6CisgICAgVVJM
IHdpbmRvd1VSTDsKKworICAgIFdvcmtsZXRQYXJhbWV0ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0
OworfTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPEF1ZGlvV29ya2xldFRocmVhZD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVk
aW9Xb3JrbGV0VGhyZWFkPiBjcmVhdGUoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJl
YWQocGFyYW1ldGVycykpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKTsKKworICAgIFdvcmtl
clJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRo
cmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
ZXhwbGljaXQgQXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisK
KyAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIHZvaWQgd29ya2xldFRocmVhZCgpOworCisg
ICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAgV29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7
CisgICAgV29ya2xldFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOworICAgIFJlZlB0cjxBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFsU2NvcGU7CisgICAgTG9jayBtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jazsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAwMmI1
ZmEwNGZlZGQ5M2VlOWMzYTJkOTUzMDMwN2QyMTA5NDRmM2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVj
NTNlYWI4YmE5M2NjMzc1NjA4N2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
QXVkaW9Db250ZXh0T3B0aW9ucwogICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAg
ICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAg
LCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRp
b1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpLCAqdGhpcykpCiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMgQXVkaW9Db250
ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZpZ2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBA
QCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwg
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscwogICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2Vy
KCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlm
Ci0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKSkKKyAgICAsIG1fd29ya2xl
dChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAgLCBtX2lzT2ZmbGluZUNvbnRl
eHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVh
dGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkK
ICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCmluZGV4
IGRmOTM1YTQwOGY0Y2IwNDNhN2Q4OTdkYjYzNzNiNDE0NzdkOGQ3NDguLjZjNTVlNmRlMWRiYjQ4
YjhkMDUyYjAzMzdjYjA5MTRkOTYwNTA5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtNDIsNyArNDIsNyBAQAog
ICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRvIHRoaXMgbGlzdGVuZXIuCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlzdGVuZXI7CiAKLSAgICBbU2FtZU9iamVj
dCwgU2VjdXJlQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3JrbGV0OworICAgIFtTYW1lT2JqZWN0LCBT
ZWN1cmVDb250ZXh0LCBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldF0gcmVhZG9ubHkgYXR0
cmlidXRlIEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7CiAKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgQXVkaW9Db250ZXh0U3RhdGUgc3RhdGU7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDc1MWRlOTE4
Y2UxZGMzNmExYzc5ZTk1MDNjOTI4ZjRmODlmMDk2YmMuLmFlMzRmZmJhMjNjZGExNmNkOWFhNzQ2
MGU3YTg3MmU3OTgyMTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMw
LDEwICszMCwxMyBAQAogCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVk
aW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1
ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9v
cC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KIApAQCAtOTksMTggKzEwMiwzMCBAQCB2b2lkIERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkKQogICAg
ICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9uLgogICAgICAgICAgICAgbV9kZXN0aW5h
dGlvbi0+c3RvcCgpOwogICAgICAgICAgICAgY3JlYXRlRGVzdGluYXRpb24oKTsKLSAgICAgICAg
ICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgICAgIH0KICAgICB9
CiB9CiAKK0Z1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKQoreworICAgIGlm
IChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkg
eworICAgICAgICByZXR1cm4gW3dvcmtsZXRQcm94eSA9IG1ha2VSZWYoKndvcmtsZXRQcm94eSld
KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgeworICAgICAgICAgICAgd29ya2xldFByb3h5
LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShbZnVuY3Rpb24gPSBXVEZNb3Zl
KGZ1bmN0aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKwogRXhjZXB0
aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZygp
CiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7CiAgICAgaWYgKCFpc0luaXRpYWxpemVk
KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0g
ICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNw
YXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAt
MTE4LDcgKzEzMyw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZXN1bWUo
RnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoaXNJbml0aWFsaXpl
ZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQotICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkRnVuY3Rpb24oKSk7CiAgICAgY29udGV4dCgpLnBvc3RUYXNrKFdURk1vdmUoZnVuY3Rpb24p
KTsKIH0KIApAQCAtMTYzLDcgKzE3OCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRp
b0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkIGNoYW5uZWxDCiAgICAg
ICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3Rv
cCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwotICAgICAgICBtX2Rlc3RpbmF0aW9u
LT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVy
VGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oCmluZGV4IGVkZTE1MzNjMTY0ODI5Y2YxZTIzYmE5M2MyOWE4ODYzNDIwM2U0
ZDIuLjdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQyMDA1YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaApAQCAtNDcsNiArNDcsOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0
IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgT3B0aW9uYWw8
ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0aW9uKCk7CiAKKyAgICBGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigp
OworCiAgICAgdm9pZCBpbml0aWFsaXplKCkgZmluYWw7CiAgICAgdm9pZCB1bmluaXRpYWxpemUo
KSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnQodW5zaWduZWQp
IGZpbmFsOwpAQCAtNjEsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1heENoYW5u
ZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgZmluYWw7CiAKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKKyAgICBS
ZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKICAgICBTdHJpbmcgbV9pbnB1
dERldmljZUlkOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzIHsgMCB9Owog
ICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAppbmRleCBmYWEzMzY1MmVkYjM3NjNiMzljMWY2YmI0N2Y2YmIyNGZhMDNjNDIwLi41M2I1NTQx
M2U5MjYxYjc3MGVmN2FjM2JhYWQ2ZDg2ZTBjODI5ZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCkBAIC0zMSw3ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5j
bHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclJ1
bkxvb3AuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtOTYsOSArOTksNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVy
aW5nKCkKICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0cnVlOwogICAgIGF1dG8gcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpOwogCi0gICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjYWxsIGxh
enlJbml0aWFsaXplIGhlcmU/Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBsaW1p
dCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2UgY3JlYXRlIGZvciBvZmZsaW5lIGF1ZGlvLgotICAg
IG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIm9mZmxpbmUgcmVuZGVyZXIiLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7Cisg
ICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gb2Zm
bGluZVJlbmRlcigpOwogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCByZXN1bHQsIGN1
cnJlbnRTYW1wbGVGcmFtZSA9IG1fY3VycmVudFNhbXBsZUZyYW1lLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewogICAgICAgICAgICAgbV9zdGFydGVkUmVuZGVyaW5n
ID0gZmFsc2U7CkBAIC0xMTQsNyArMTE1LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKLSAgICB9LCBUaHJlYWRUeXBlOjpBdWRp
byk7CisgICAgfTsKKworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCkuYXVk
aW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9y
TW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtvZmZUaHJlYWRSZW5kZXJpbmcgPSBXVEZNb3ZlKG9m
ZlRocmVhZFJlbmRlcmluZyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIG9mZlRocmVhZFJlbmRlcmluZygpOworICAgICAgICB9LCBXb3JrZXJSdW5Mb29w
OjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBj
cmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCisgICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNy
ZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKSwgVGhy
ZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
OTVjYzEwODU1ZDhiYWZlZDdhNDUzYzRiZTlmNGQ5MmRlMjQ1MzdiYi4uYzdlY2ZkZDE1NWM1Mjgw
ZDU4NTRiZmI1MmJlYmVhMDI4NGFkYjdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwNSw3ICsyMDUs
MTAgQEAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcAogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNw
cAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwCiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVh
ZC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKIE1vZHVsZXMvd2Vi
YXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJO
b2RlLmNwcApAQCAtMjU3OSw2ICsyNTgyLDcgQEAgd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0LmNwcAogd29ya2xldHMvV29ya2xldENvbnNvbGVD
bGllbnQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCit3b3JrbGV0cy9Xb3Jr
bGV0UGVuZGluZ1Rhc2tzLmNwcAogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3Bw
CiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogeG1sL0RPTVBhcnNlci5jcHAKQEAgLTI2
ODAsNiArMjY4NCw3IEBAIEpTQXVkaW9UaW1lc3RhbXAuY3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBK
U0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1dvcmtsZXQuY3BwCitKU0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmNwcAogSlNBdWRpb1dvcmtsZXROb2RlLmNwcAogSlNBdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucy5jcHAKIEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGYzNTJkYjNjMjEwY2VhY2U1Mjk5MTg2OGVjYjBjYjczNjM1Y2ZlZDAuLmIwYzI5NzBmNWFj
ZGY5ZTIzMzBlYmY4ZDdhOTQwMTJkNWU2MDMzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0NTEsNiArMjQ1MSwxMCBAQAog
CQk4MzNCOUUzMjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJG
MUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovOyB9Owog
CQk4MzNCOUUzNDFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0I5RTJBMUY1MDhEODAw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNjFGNTA4RDg1
MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUyQzFGNTA4RDgwMDBFMEU0MjggLyogSlNG
aWxlU3lzdGVtRmlsZUVudHJ5LmggKi87IH07CisJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAv
KiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdU
YXNrcy5oICovOyB9OworCQk4MzNCRDgxODI1MjRENEY1MDA2RTcyQjMgLyogV29ya2xldEdsb2Jh
bFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5o
ICovOyB9OworCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
M0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9
OworCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JE
ODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovOyB9
OwogCQk4MzNEMUM3NjI0RDhENTRGMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNE
MUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi87
IH07CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZD
MDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzNDNEOTg0MjREMERFRTkw
MDlBQkQ0OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0M0Q5ODEyNEQwREVBOTAwOUFCRDQ5IC8qIFdlYktp
dE9zY2lsbGF0b3JOb2RlLmggKi87IH07CkBAIC0yNTA4LDYgKzI1MTIsNyBAQAogCQk4MzhGODZE
QjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4
Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oICovOyB9OwogCQk4Mzk5NDcwQzFGNTBC
NjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUwQjYzODAwRTlEODZCIC8qIERPTUZpbGVT
eXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZGQTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5
c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5
OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oICovOyB9OworCQk4MzlB
MDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTA5NUIy
NTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0
QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyog
SFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICovOyB9
OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyogSUlSRmlsdGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1
MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNTM1LDYgKzI1NDAsNyBAQAogCQk4M0QzNUFF
QzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcxODdFRDAw
RjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIx
QzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcxOEQ4NDAw
RjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0Q1MTFG
NjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEgLyogUHVz
aFB1bGxGSUZPLmggKi87IH07CisJCTgzRDZBQUU2MjUyNEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjREQTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRG
aWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oICovOyB9Owog
CQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEUyNERBMThC
NjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAqLzsgfTsKIAkJODNFMzU5QTIxQkIx
MDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlBMDFCQjEwMzFEMDAyQ0VCOTggLyogSlNI
VE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI1NDQsNiArMjU1MCw3IEBACiAJCTgzRkIzMzcx
MUY1MDhBNTQwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkIzMzZEMUY1MDhBNEUwMDk4
NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLzsgfTsKIAkJODNGQjMzNzMxRjUw
OEE1ODAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVT
eXN0ZW1FbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3NTFGNTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5
c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGQjMzNkMxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1GaWxlRW50cnkuaCAq
LzsgfTsKKwkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQzk5NDky
NTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oICovOyB9OwogCQk4M0ZFN0NB
NzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2
ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTMxREE5RjE2
NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkwMjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBl
cmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5o
ICovOyB9OwpAQCAtMTA1NzgsNiArMTA1ODUsMTMgQEAKIAkJODMzQjlFMkQxRjUwOEQ4MDAwRTBF
NDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzNCOUUyRTFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRW50
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlU3lzdGVt
RW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRjFGNTA4RDgw
MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQ
ZW5kaW5nVGFza3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldFBl
bmRpbmdUYXNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxNTI1MjRE
NEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9i
YWxTY29wZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRH
bG9iYWxTY29wZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE5
MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQTI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MUMyNTI0RDUx
RDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzQ0Y3MEYyMERCM0Y1RjAwMTQxQkNDIC8q
IEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291
cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3NTI0RDhENTMz
MDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTA3MDQsNiArMTA3MTgsNyBAQAogCQk4Mzk5NDcwOTFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmls
ZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01GaWxl
U3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5OTQ3MEQxRjUwQjZG
MzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTFN0YXRlVHJh
Y2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJDMUUyMDRBNkQw
MDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFdCUkVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiArMTA3NjcsNyBAQAogCQk4M0QzNUFGMDFD
NzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1MTFGMzI1MEMxQ0E4MDAyRURDNTEgLyog
UHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1
c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDUxMUY1MjUw
QzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
RDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0RCOUUwQTI0REExOEI0MDAzN0I0
NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmlxdWFkRmlsdGVyVHlwZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBC
aXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpcXVhZEZpbHRlclR5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlFMEQyNERBMThCNTAwMzdCNDY4IC8qIEJp
cXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEsNiArMTA4MDcsOSBAQAogCQk4M0ZCMzM2
RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2RTFGNTA4QTRFMDA5ODZFNTQgLyogRmls
ZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZp
bGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkIzMzZG
MUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0VGhy
ZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xldFRocmVhZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0
VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29ya2xldFRocmVhZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBF
dmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVu
dE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNDFE
QTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNG
RTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzU0Miw2ICsxNzU2MSw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0ICovLAorCQkJCTZGRTE5ODEzMjE3
ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5jcHAgKi8sCisJCQkJNkZFMTk4
MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggKi8sCiAJCQkJNkY3
Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywK
IAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
aCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQgLyogSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4ICsxNzU3NSw2IEBACiAJCQkJNkYwQ0Q2
OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCAqLywKIAkJCQk2RjY5QTc5OTI0RDZG
QUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8sCiAJCQkJNkZCMjQwMDMyM0RGRjEy
NzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywKLQkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0
NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovLAotCQkJCTZGRTE5ODE1MjE3ODM5
N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovLAogCQkJCTZGMjVCMjAwMjIw
QTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRlci5jcHAgKi8sCiAJCQkJNkYyNkVCNDYy
MzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYy
NTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICovLApAQCAtMTg3MjAsNiAr
MTg3MzksOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1l
c3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0YwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4
IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLywKIAkJCQk0MTZFMjlBNTEw
MkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCAqLywKIAkJCQkyRTQzNDY0
MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCAqLywKQEAgLTE5NzM4LDggKzE5NzU5
LDExIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29w
ZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxT
Y29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIwMDUyREZDRCAvKiBXb3JrbGV0R2xvYmFs
U2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xv
YmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEwMjUyMjlFMDQwMDBEMTI0RSAvKiBXb3Jr
bGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUyMjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0
T3B0aW9ucy5pZGwgKi8sCisJCQkJODMzQkQ4MTUyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQ
ZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3Jr
bGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEzMjkyMTgwMDQwQzAwNTJERkNEIC8qIFdv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJCQk0QkRFQTMyNzIxODAwM0Y3MDA1MkRG
Q0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLywKIAkJCSk7CkBAIC0yOTg1OCwxMSAr
Mjk4ODIsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBFMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0
LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Lmgg
Ki8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldC5pZGwgKi8s
CisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBB
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8sCisJCQkJODMzQkQ4MUIyNTI0RDUxQzAw
NkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJODNCOTg3MDMy
NTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUuY3BwICovLAogCQkJCTgzQjk4NzA3
MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlLmggKi8sCiAJCQkJODNCOTg3MDQy
NTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUuaWRsICovLAogCQkJCTgzQjk4NzAw
MjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oICovLAogCQkJCTgz
Qjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgKi8s
CisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5jcHAg
Ki8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5o
ICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmNw
cCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBCMDUgLyogQmFzZUF1ZGlvQ29udGV4dC5o
ICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0Lmlk
bCAqLywKQEAgLTMwNDY3LDggKzMwNDk4LDExIEBACiAJCQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0
MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMg
LyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4
NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUyNTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dv
cmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Rjcx
M0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAwQjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcyLDYgKzMxODA2LDcgQEAKIAkJCQlDRDA2
M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVD
b250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU3Q0I1MkUxODJBM0VGQzAwNzlB
NjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEEx
NTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjdD
QTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTUsNiBAQAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYw
RUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQ0Q2OTUyMjlF
RDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjI0MDA1
MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQk2
RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGlu
ZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5
QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1OTUsNiArMzQ2Mjks
OCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlENiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9y
YWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAv
KiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUxMEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNE
NkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RTI5QTYxMDJGQTk2
MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQky
RTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0NSw5IEBACiAJCQkJNEJERUEzMjAyMTdFQzU1
RjAwNTJERkNEIC8qIFdvcmtsZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCN0Y5QzUyMjE4M0I1
RTUwMDFDRUJBMCAvKiBXb3JrbGV0Q29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEJERUEzMjUyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29w
ZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0FDRDAxMzI1MjI5RTEwMDAwRDEyNEUgLyog
V29ya2xldE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZF
NzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMy
ODIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4MSAvKiBXcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1
MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CmluZGV4IGIxNGI4MTU0MmRiODg5ZWM2ZDI1OWJjNWI3MGVmMmE1MDk5Yzk2ZDEuLjMyM2RlZTc4
ZDhiYmVjOWVjZWUxNTZiOTMzZWFkMDg2MTQxOTdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtMjcs
OCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV29ya2xldEdsb2Jh
bFNjb3BlQmFzZS5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdFRhc2suaCIK
ICNpbmNsdWRlICJKU0RPTUd1YXJkZWRPYmplY3QuaCIKQEAgLTE1MSw0ICsxNDksMyBAQCBKU1dv
cmtsZXRHbG9iYWxTY29wZSogdG9KU1dvcmtsZXRHbG9iYWxTY29wZShWTSYgdm0sIEpTVmFsdWUg
dmFsdWUpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaAppbmRl
eCA4ZmVmOTIwMWZlZGMzNjFlOTI1Y2M4MDYyZjJjZjI2ZGEzMWNlYzYwLi5iOGExN2VjNGU3ZTJm
YWNjYmU4NDY3NGNhMDE0ZDEzNWJlNzA1OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaApAQCAtMjYsOCArMjYsNiBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5j
bHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNp
bmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCkBAIC04OCw1ICs4NiwzIEBAIGlubGluZSBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXb3Jr
bGV0R2xvYmFsCiBKU1dvcmtsZXRHbG9iYWxTY29wZSogdG9KU1dvcmtsZXRHbG9iYWxTY29wZShK
U0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKENTU19QQUlOVElOR19BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNjJiMGQ2ZDU0YTRmMDAwMmRlZTRi
ZDJkZmM3ZWM2ZWQxMzdkODQ2OC4uYjNhOGQ1YjEzYzQ1MTFjZjc4NDI1NzU5ZDYwNTE0ODExMTQ5
MGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
QXVkaW9MaXN0ZW5lcikgXAogICAgIG1hY3JvKEF1ZGlvUGFyYW1NYXApIFwKICAgICBtYWNybyhB
dWRpb1dvcmtsZXQpIFwKKyAgICBtYWNybyhBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSkgXAogICAg
IG1hY3JvKEF1ZGlvV29ya2xldE5vZGUpIFwKICAgICBtYWNybyhBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2UpIFwKICAgICBtYWNybyhBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmNwcAppbmRleCAzOGRmNjc3NTJlOTBhNmEyZTAxNzRjZmFmYmM0Zjg3MWVhODFjMTRhLi4w
NzY2MDgzODA3NGUyNmViZjQzMWQ1MWE5YWYzMTAxOWM1OWEwNzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiRE9NR0NPdXRwdXRDb25zdHJhaW50LmgiCiAjaW5jbHVkZSAi
RE9NSXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQnVpbHRpbkNvbnN0
cnVjdG9yQmFzZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02OCw5ICs2OSwxMiBA
QCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVudERhdGEoVk0mIHZtKQogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKICAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZT4oKSkKICNlbmRpZgorICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxT
Y29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTV29ya2xldEdsb2JhbFNjb3BlPigp
KQogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZT4oKSkKLSAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3Jr
bGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9i
YWxTY29wZT4oKSkKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgLCBtX2hlYXBD
ZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6
OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigpKQogI2VuZGlmCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXph
dGlvbkdsb2JhbE9iamVjdChKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTSURCU2VyaWFs
aXphdGlvbkdsb2JhbE9iamVjdD4oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4M2I4MjM0YzMzNWRlZDE0NTBkMTgxM2ZlODQy
OTdhOTc1ODM4OTUxLi5iODQ0MGU4NzcwZTQ3MjkxZjdlZTIwNjMxOTllYTA1YzNjNGJiMGMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5o
CkBAIC05OSw5ICs5OSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JK
U1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxK
U0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZTsK
ICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpI
ZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9y
SlNXb3JrbGV0R2xvYmFsU2NvcGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlw
ZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBkMGE1NDdhYzU2
NzM5ZmRkZTFlNzBlOGVjMTliMmI0ODg1ZWI1NjA5Li5lMzkwMTgwZjU3MWY5ZTFlMzViYzkyM2Ix
ZDc3MWQ0Yjk1Y2VkYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAg
LTQ0LDcgKzQ1LDcgQEAgY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNv
bGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIAotY2xhc3MgV29ya2VyU2NyaXB0
Q29udHJvbGxlciB7CitjbGFzcyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIDogcHVibGljIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdv
cmtlclNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlKik7CkBAIC02Nyw3
ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKS9pc0V4ZWN1dGlvbkZv
cmJpZGRlbigpIHRvIGd1YXJkIGFnYWluc3QgcmVlbnRyeSBpbnRvIEpTLgogICAgIC8vIENhbiBi
ZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgogICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJt
aW5hdGlvbigpOwotICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0OworICAg
IGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gQ2Fs
bGVkIG9uIFdvcmtlciB0aHJlYWQgd2hlbiBKUyBleGl0cyB3aXRoIHRlcm1pbmF0aW9uIGV4Y2Vw
dGlvbiBjYXVzZWQgYnkgZm9yYmlkRXhlY3V0aW9uKCkgcmVxdWVzdCwKICAgICAvLyBvciBieSBX
b3JrZXIgdGhyZWFkIHRlcm1pbmF0aW9uIGNvZGUgdG8gcHJldmVudCBmdXR1cmUgZW50cnkgaW50
byBKUy4KQEAgLTc5LDExICs4MCwxMSBAQCBwdWJsaWM6CiAKICAgICBKU0M6OlZNJiB2bSgpIHsg
cmV0dXJuICptX3ZtOyB9CiAgICAgCi0gICAgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpOwotICAg
IHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKTsKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkg
ZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOwogCi0gICAgdm9pZCBh
ZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKLSAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6
SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgIHZvaWQgYWRk
VGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRp
b25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihK
U0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKIAog
ICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwogICAgIHZvaWQgZGV0YWNo
RGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxMGYzZTY2ODY2NTQ1YTVhNjBhOWVl
NWE5Zjg2NzRhZTNjMjg0OTMyLi41OGZkMWE3YTI2ZmRkMWRhYzRkYjJiNzBiMWM1NDUzNzViY2Q0
ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtNzc1LDcgKzc3NSw3IEBAIHN1YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQ
cm90b3R5cGUKIAogICAgICMgRm9yIHdvcmtlcnMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiOwotICAgICMgRm9yIHdvcmtsZXRzLCB0aGUg
Z2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3BlLgorICAgICMgRm9yIHdv
cmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3BlIG9y
IGEgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+
dHlwZS0+bmFtZSBlcSAiV29ya2xldEdsb2JhbFNjb3BlIjsKIAogICAgIHJldHVybiBJc0RPTUds
b2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXggYmVlMGZjNTA2OTE5ZmNjZmQxNzVmNjlj
YzUyM2M1NzU2YmMwOGE4OC4uZjRjODRiYzg4YzQxMTQ1ZGQxNmVkMzgzZDRkMzljNDJjYzVkNjk0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGwKQEAgLTQ3LDYgKzQ3LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOworbXkgJGF1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlOwogbXkgJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwczsKIG15ICRpZGxBdHRyaWJ1dGVz
RmlsZTsKQEAgLTY5LDYgKzcwLDcgQEAgR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRlZmlu
ZXMsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
PXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAg
ICAgICAgJ3dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAncGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlLAorICAgICAgICAgICAnYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlPXMnID0+IFwkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlLAogICAgICAgICAgICAndGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBc
JHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdzdXBwbGVtZW50
YWxNYWtlZmlsZURlcHM9cycgPT4gXCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMsCiAgICAgICAg
ICAgICdpZGxBdHRyaWJ1dGVzRmlsZT1zJyA9PiBcJGlkbEF0dHJpYnV0ZXNGaWxlLApAQCAtODMs
NiArODUsNyBAQCBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRgogZGllKCdNdXN0IHNwZWNpZnkgYW4g
b3V0cHV0IGZpbGUgdXNpbmcgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlLicpIHVubGVzcyBkZWZpbmVkKCRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQg
ZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1
bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsK
K2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tYXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRhdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0
IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBk
ZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSB8fCAhZGVmaW5lZCgkdGVz
dEdsb2JhbENvbnRleHROYW1lKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IHRoZSBmaWxlIGxpc3Rpbmcg
YWxsIElETHMgdXNpbmcgLS1pZGxGaWxlTmFtZXNMaXN0LicpIHVubGVzcyBkZWZpbmVkKCRpZGxG
aWxlTmFtZXNMaXN0KTsKIGRpZSgnTXVzdCBzcGVjaWZ5IElETCBhdHRyaWJ1dGVzIGZpbGUgdXNp
bmcgLS1pZGxBdHRyaWJ1dGVzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkaWRsQXR0cmlidXRlc0Zp
bGUpOwpAQCAtOTUsNiArOTgsNyBAQCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRkZWRpY2F0ZWRXb3JrZQogJHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlKTsKKyRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
PSBDeWd3aW5QYXRoSWZOZWVkZWQoJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzID0gQ3lnd2luUGF0aElmTmVlZGVkKCRz
dXBwbGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmluZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcyk7CiAKIG15IEBpZGxGaWxlTmFtZXM7CkBAIC0xMzUsNiArMTM5LDcgQEAgbXkgJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlID0gIiI7CitteSAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNDb2RlID0gIiI7CiBteSAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIi
OwogCiBteSAkaXNvU3Vic3BhY2VzSGVhZGVyQ29kZSA9IDw8RU5EOwpAQCAtMjM3LDYgKzI0Miw4
IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkg
ewogICAgICAgICAgICAgICAgICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49
ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEg
IlBhaW50V29ya2xldCIpIHsKICAgICAgICAgICAgICAgICAkcGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOworICAgICAgICAgICAgfSBlbHNp
ZiAoJGdsb2JhbENvbnRleHQgZXEgIkF1ZGlvV29ya2xldCIpIHsKKyAgICAgICAgICAgICAgICAk
YXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2Rl
OwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgJHRlc3RHbG9iYWxDb250
ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI1NCw2ICsy
NjEsNyBAQCBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjbwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNl
KCJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSwgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJXb3JrbGV0R2xvYmFsU2NvcGUiLCAkd29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJQYWludFdvcmtsZXRHbG9iYWxT
Y29wZSIsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRwYWludFdv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworR2VuZXJhdGVQYXJ0aWFsSW50ZXJm
YWNlKCJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSIsICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUp
OwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSkgaWYgZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKIAogaWYgKCRpc29TdWJz
cGFjZXNIZWFkZXJGaWxlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGRhZTExMDdkMzM0YmM4ZjQzZGYyZjRmN2U4
NGE5ODNjMzVkNjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApAQCAt
MCwwICsxLDIgQEAKK3BhcnRpYWwgaW50ZXJmYWNlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBjZjExYmUy
N2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApAQCAt
MCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVp
bGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBh
bmQKKyAgICBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNy
ZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHBy
ZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgKQEAgLTAsMCArMSw1IEBACisvKgorICAg
IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kCisgICAgSlNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBjcmVhdGVkIGZvciBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAg
IHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0ZSBKU0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzLmggYW5kIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NQYWludFdvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50
V29ya2xldC5jcHAKaW5kZXggMTM2ZTRmMTRlY2ZlNWU0YjlmOWM5NTIwMjc0MzlhNGEzMWQ0OTY0
NS4uNmEwZTE5NjY0NTQyZTgxNjgxYzdhNjk3ZWNjNzExNWI3YTRkZmMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJET01DU1NOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IlBhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3Bl
UHJveHkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTYsMTEgKzU3LDE4IEBAIGNvbnN0IGNoYXIqIERPTUNTU1BhaW50V29ya2xl
dDo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiRE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0K
IAotdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQorLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBvdmVycmlkZSBhbmQg
cmVseSBvbiB0aGUgc3RhbmRhcmQtY29tcGxpYW50IFdvcmtsZXQ6OmFkZE1vZHVsZSgpIGluc3Rl
YWQuCit2b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJM
LCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQog
eworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3Vt
ZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG93bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRo
ZSBVUkwKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
MTM2Ci0gICAgYXV0byBtYXliZUNvbnRleHQgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5
Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRTb3VyY2VDb2RlKG1vZHVsZVVSTCkpOworICAgIGF1dG8g
bWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1l
bnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7CiAgICAgaWYgKFVOTElLRUxZKCFtYXli
ZUNvbnRleHQpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVt
b3J5RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTcwLDkgKzc4LDE1IEBAIHZvaWQgUGFp
bnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1v
ZHVsZVVSTCwgV29ya2xlCiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNvbnRleHQtPnBh
aW50RGVmaW5pdGlvbkxvY2soKSk7CiAgICAgZm9yIChhdXRvJiBuYW1lIDogY29udGV4dC0+cGFp
bnREZWZpbml0aW9uTWFwKCkua2V5cygpKQotICAgICAgICBkb2N1bWVudC5zZXRQYWludFdvcmts
ZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CisgICAg
ICAgIGRvY3VtZW50LT5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFr
ZVJlZihjb250ZXh0LmdldCgpKSk7CiAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3Rv
cjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2Jh
bFNjb3BlcygpCit7CisgICAgLy8gRklYTUU6IEFkZCBpbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1
cm4geyB9OworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01DU1NQYWludFdvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmts
ZXQuaAppbmRleCBiOWIxMzg1YmIwOGEzZjFjZWQ0ZWIyYjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRh
ZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIyMDQ4MjIzZjJjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU1BhaW50V29ya2xldC5oCkBAIC00MSwxNSArNDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFt
ZXNwYWNlOwogCiBjbGFzcyBQYWludFdvcmtsZXQgZmluYWwgOiBwdWJsaWMgV29ya2xldCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGlj
IFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWludFdvcmtsZXQpOworICAgICAgICBhdXRvIHdv
cmtsZXQgPSBhZG9wdFJlZigqbmV3IFBhaW50V29ya2xldChkb2N1bWVudCkpOworICAgICAgICB3
b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAg
fQogCi0gICAgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVS
TCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOwor
ICAgIC8vIFdvcmtsZXQuCisgICAgdm9pZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVV
UkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsK
KyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2Nv
cGVzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgUGFpbnRXb3JrbGV0KCkgPSBkZWZhdWx0Owor
ICAgIGV4cGxpY2l0IFBhaW50V29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDog
V29ya2xldChkb2N1bWVudCkKKyAgICB7IH0KIH07CiAKIGNsYXNzIERPTUNTU1BhaW50V29ya2xl
dCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggMmFjZjNmMThjYWRjNjg2YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRh
ZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMzZmIzMmMxN2QwZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC04NDM5LDcgKzg0MzksNyBAQCBEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bgogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKICAgICBp
ZiAoIW1fcGFpbnRXb3JrbGV0KQotICAgICAgICBtX3BhaW50V29ya2xldCA9IFBhaW50V29ya2xl
dDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGFpbnRXb3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVh
dGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wYWludFdvcmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDVkZTAxN2M4YjE1NzA0Yjg3ZjgxYzg1
NGJiYzQ3NzA2MmJjZGExMmMuLjMwMTcxMDA0NGZmMTNhMTRjMDIyOGRhMzg5MDJkM2U3ZDMzNzdj
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNTUsNyAr
NTUsNyBAQCBXZWJHUFVEZXZpY2UgY29uZGl0aW9uYWw9V0VCR1BVCiBXZWJLaXRNZWRpYUtleVNl
c3Npb24gY29uZGl0aW9uYWw9TEVHQUNZX0VOQ1JZUFRFRF9NRURJQQogV2ViU29ja2V0CiBXb3Jr
ZXIKLVdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJCitXb3Jr
bGV0R2xvYmFsU2NvcGUKIFhNTEh0dHBSZXF1ZXN0CiBYTUxIdHRwUmVxdWVzdFVwbG9hZAogV2Vi
WFJMYXllciBjb25kaXRpb25hbD1XRUJYUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAppbmRleCAwNmEzZWM5MDY1NTgyNmZiY2Q5MWE4M2I2NDFlMjdmNTll
NzVkZTYwLi5hZWI1ODNjYTRiMmFlMjEzMzBhZTM0OTgzOTViYjY1ODMwZTA0OTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTI3LDYgKzEy
NywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NQYWludGluZ0FQSUVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQorICAgIHZvaWQgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBtX2F1ZGlvV29ya2xldEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIGF1ZGlv
V29ya2xldEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvV29ya2xldEVuYWJsZWQ7IH0K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICB2b2lkIHNldENTU1R5cGVk
T01FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fQ1NTVHlwZWRPTUVuYWJsZWQgPSBpc0VuYWJs
ZWQ7IH0KICAgICBib29sIGNzc1R5cGVkT01FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9DU1NU
eXBlZE9NRW5hYmxlZDsgfQpAQCAtMzAyLDYgKzMwNyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KENTU19QQUlOVElOR19BUEkpCiAgICAgYm9vbCBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZCB7IGZh
bHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGJvb2wgbV9hdWRpb1dv
cmtsZXRFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9P
TSkKICAgICBib29sIG1fQ1NTVHlwZWRPTUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sCmluZGV4IDBlMDllNWIxNzFlNjdjMGQyNTQ0OTY3OGZmYTk4MDQxMTNmNmRh
OGMuLmFiNGQ5NmUxMTEyMGM0YmYzNWE2YTkyM2E5ZWNiMjVmNjk1MzljMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKQEAgLTI1OSw4ICsyNTksNiBAQCBwcmVmaXhlZFdlYkF1ZGlvRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6
CiAgIGluaXRpYWw6IGZhbHNlCi1hdWRpb1dvcmtsZXRFbmFibGVkOgotICBpbml0aWFsOiBmYWxz
ZQogcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogZnVsbFNj
cmVlbkVuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXgg
NDNkNTc2NTI5OGMwNjc5MmM2ZGRjZTg1YzQyYTBhM2Y1NzVhODc4My4uOTg1MjA1ZGFiYWFiOGRh
Mzg2ZjY1NjRkODA5NmZkMjg2NTVjMWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlh
U3RyYXRlZ3kuaApAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgTm93UGxheWluZ0luZm87CiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oCisgICAgdmlydHVhbCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCmluZGV4IGRlYjc1N2RjNDVlNTc4NTg1MjE3ZmQzYmVj
MDcxMmI2NDRkNzUzNzQuLjE2MGM2NTc4ZTE1ZWQ1ZWE3NTI1ZGM3NjhiZDRlZjNmZGM3NGY0ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgQXVkaW9EZXN0aW5hdGlvbl9oCiAKICNpbmNs
dWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQw
LDE2ICs0MSwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiAvLyBUaGUgYXVkaW8gaGFyZHdh
cmUgcGVyaW9kaWNhbGx5IGNhbGxzIHRoZSBBdWRpb0lPQ2FsbGJhY2sgcmVuZGVyKCkgbWV0aG9k
IGFza2luZyBpdCB0byByZW5kZXIvb3V0cHV0IHRoZSBuZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1
ZGlvLgogLy8gSXQgb3B0aW9uYWxseSB3aWxsIHBhc3MgaW4gbG9jYWwvbGl2ZSBhdWRpbyBpbnB1
dCB3aGVuIGl0IGNhbGxzIHJlbmRlcigpLgogCi1jbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIHsKK2Ns
YXNzIEF1ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9E
ZXN0aW5hdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVk
aW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlm
aWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBw
YXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1
ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1
bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVy
VGhyZWFkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGlzUGxheWluZygpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggNzRh
ZDYxNmZhOWUyNWRlYjk5OWM5NmI2NjdlZDE0OTQ3MGJmNjg3Mi4uZGE0ZTRiMmM4YjYwNzM0ODNm
OWZhZGM2N2JhZmJmZmY4Njg1ZjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00
MSw3ICs0MSw3IEBAIGNvbnN0ZXhwciBzaXplX3QgZmlmb1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKIAogQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3Zl
cnJpZGUgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSA9IG51bGxwdHI7CiAK
LXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNl
SWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTU1LDcgKzU1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2sm
IGNhbGwKICAgICBpZiAoQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSkKICAg
ICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUoY2FsbGJh
Y2ssIHNhbXBsZVJhdGUpOwogCi0gICAgYXV0byBkZXN0aW5hdGlvbiA9IG1ha2VVbmlxdWU8QXVk
aW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2Ft
cGxlUmF0ZSk7CisgICAgYXV0byBkZXN0aW5hdGlvbiA9IGFkb3B0UmVmKCpuZXcgQXVkaW9EZXN0
aW5hdGlvbkNvY29hKGNhbGxiYWNrLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KSk7CiAgICAgZGVzdGluYXRpb24tPmNvbmZpZ3VyZSgpOwogICAgIHJldHVybiBkZXN0aW5hdGlv
bjsKIH0KQEAgLTEwMyw5ICsxMDMsMTAgQEAgdW5zaWduZWQgQXVkaW9EZXN0aW5hdGlvbkNvY29h
OjpmcmFtZXNQZXJCdWZmZXIoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlckJ1cy0+bGVuZ3Ro
KCk7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYp
PiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpzdGFydCIpOworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdU
Rk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVk
aW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRVbml0KTsKIAogICAgIGlmICghcmVzdWx0KQpAQCAt
MTE2LDYgKzExNyw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIHsKICAg
ICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBPU1N0YXR1
cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgbV9kaXNw
YXRjaFRvUmVuZGVyVGhyZWFkID0gbnVsbHB0cjsKIAogICAgIGlmICghcmVzdWx0KQogICAgICAg
ICBzZXRJc1BsYXlpbmcoZmFsc2UpOwpAQCAtMTIzLDYgKzEyNSw3IEBAIHZvaWQgQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpzdG9wKCkKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElz
UGxheWluZyhib29sIGlzUGxheWluZykKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
aXNQbGF5aW5nTG9jayk7CiAgICAgaWYgKG1faXNQbGF5aW5nID09IGlzUGxheWluZykKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNzMsMTggKzE3NiwzOCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIg
bgogCiAgICAgLy8gQXNzb2NpYXRlIHRoZSBkZXN0aW5hdGlvbiBkYXRhIGFycmF5IHdpdGggdGhl
IG91dHB1dCBidXMgdGhlbiBmaWxsIHRoZSBGSUZPLgogICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1Rv
QnVzKGJ1ZmZlcnMsIG1fb3V0cHV0QnVzLmdldCgpLCBudW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9m
RnJhbWVzLCAwLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyID0g
bV9maWZvLT5wdWxsKG1fb3V0cHV0QnVzLnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc2l6
ZV90IGZyYW1lc1RvUmVuZGVyOwogCisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fZmlmb0xvY2spOworICAgICAgICBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbCht
X291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIC8vIFdoZW4g
dGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3Jr
bGV0VGhyZWFkLgorICAgIGlmIChtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGZyYW1lc1RvUmVuZGVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgc3RkOjp1bmlx
dWVfbG9jazxMb2NrPiBsb2NrKG1faXNQbGF5aW5nTG9jaywgc3RkOjp0cnlfdG9fbG9jayk7Cisg
ICAgICAgICAgICBpZiAobG9jay5vd25zX2xvY2soKSAmJiBtX2lzUGxheWluZykKKyAgICAgICAg
ICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICAgICAg
fSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9S
ZW5kZXIpOworCisgICAgcmV0dXJuIG5vRXJyOworfQorCisvLyBUaGlzIHJ1bnMgb24gdGhlIEF1
ZGlvV29ya2xldFRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBpcyBlbmFibGVkLCBvbiB0aGUgYXVk
aW8gZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZCBvdGhlcndpc2UuCit2b2lkIEF1ZGlvRGVzdGlu
YXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIp
Cit7CiAgICAgZm9yIChzaXplX3QgcHVzaGVkRnJhbWVzID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJh
bWVzVG9SZW5kZXI7IHB1c2hlZEZyYW1lcyArPSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpIHsKICAgICAgICAgaWYgKG1fcmVzYW1wbGVyKQogICAgICAgICAgICAgbV9yZXNhbXBs
ZXItPnByb2Nlc3ModGhpcywgbV9yZW5kZXJCdXMucHRyKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY2FsbGJhY2sucmVu
ZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIAorICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fZmlmb0xvY2spOwogICAgICAgICBtX2ZpZm8tPnB1c2gobV9yZW5kZXJCdXMucHRyKCkpOwog
ICAgIH0KLQotICAgIHJldHVybiBub0VycjsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2Fs
bGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKaW5kZXggMDBkZGEyZmIyYTM3YjgzZjEwZWZhNTI3
MWIxNzY4YTgwYjQ4MTFlYy4uMDg5NGQ2MjFhMmYxNTMyMjUxMjczNjUwYjZlNWEzZDNlYzk5NmY4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQXVkaW9C
dXM7CiBjbGFzcyBNdWx0aUNoYW5uZWxSZXNhbXBsZXI7CiBjbGFzcyBQdXNoUHVsbEZJRk87CiAK
LXVzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJh
dGUpOwordXNpbmcgQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgPSBSZWY8QXVk
aW9EZXN0aW5hdGlvbj4oKikoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAK
IC8vIEFuIEF1ZGlvRGVzdGluYXRpb24gdXNpbmcgQ29yZUF1ZGlvJ3MgZGVmYXVsdCBvdXRwdXQg
QXVkaW9Vbml0CiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgOiBwdWJsaWMgQXVkaW9EZXN0
aW5hdGlvbiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewpAQCAtNjUsMTEgKzY1LDE1IEBA
IHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwogCisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlv
bjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisKIHByaXZhdGU6Ci0gICAg
dm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5j
dGlvbjx2b2lkKCk+JiYpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
IAotICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0
aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
LCB1bnNpZ25lZCwgZmxvYXQpOworICAgIHZvaWQgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXpl
X3QgZnJhbWVzVG9SZW5kZXIpOworCisgICAgZnJpZW5kIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7CiAgICAgCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92
aWRlci4KICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpIGZpbmFsOwpAQCAtOTEsMTEgKzk1LDE0IEBAIHByaXZhdGU6CiAgICAgLy8gUmVzb2x2
ZXMgdGhlIGJ1ZmZlciBzaXplIG1pc21hdGNoIGJldHdlZW4gdGhlIFdlYkF1ZGlvIGVuZ2luZSBh
bmQKICAgICAvLyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZnJvbSB0aGUgYWN0dWFsIGF1ZGlvIGRl
dmljZS4KICAgICBVbmlxdWVSZWY8UHVzaFB1bGxGSUZPPiBtX2ZpZm87CisgICAgTG9jayBtX2Zp
Zm9Mb2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9y
ZXNhbXBsZXI7CiAgICAgQXVkaW9JT1Bvc2l0aW9uIG1fb3V0cHV0VGltZXN0YW1wOwogCiAgICAg
ZmxvYXQgbV9jb250ZXh0U2FtcGxlUmF0ZTsKKworICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwog
ICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IDhmZGViNmEyNDI0ODQ5Y2FjMTdiYmU5MGFhZTcx
MmE4OWEyNGQxMDAuLmMwNWFlNmJlNjI5ZGRiM2RmNjcyMjgyOTExMWNlOGI2NDAwZWU2OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgc3RhdGljIHZvaWQgYXV0b0F1ZGlvU2lua0NoaWxkQWRkZWRDYWxsYmFjayhHc3RDaGlsZFBy
b3h5KiwgR09iamVjdCogb2JqZWN0LCBnY2gKICAgICAgICAgZ19vYmplY3Rfc2V0KEdTVF9BVURJ
T19CQVNFX1NJTksob2JqZWN0KSwgImJ1ZmZlci10aW1lIiwgc3RhdGljX2Nhc3Q8Z2ludDY0Pigx
MDAwMDApLCBudWxscHRyKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0aW5hdGlv
bj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNv
bnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTog
bWFrZSB1c2Ugb2YgaW5wdXREZXZpY2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNjAsNyArNjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbAogICAgIGlmIChudW1iZXJPZk91dHB1dENoYW5u
ZWxzICE9IDIpCiAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgl
dSwgJXUsICVmKSAtIHVuaGFuZGxlZCBvdXRwdXQgY2hhbm5lbHMiLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogCi0gICAgcmV0dXJu
IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcj4oY2FsbGJhY2ssIHNhbXBsZVJh
dGUpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIo
Y2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsKIH0KIAogZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFy
ZHdhcmVTYW1wbGVSYXRlKCkKQEAgLTE2NSw3ICsxNjUsNyBAQCBnYm9vbGVhbiBBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAg
cmV0dXJuIFRSVUU7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQo
KQordm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1
bmN0aW9uPHZvaWQoKT4mJik+JiYpCiB7CiAgICAgQVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxl
KTsKICAgICBpZiAoIW1fYXVkaW9TaW5rQXZhaWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmgKaW5kZXggY2ZlNjg5MjA4ZDA5NjhhNTFhOGJiMWQxZTg3ZjZlMTlkMGYy
MzE2Ni4uZDU1MTA0Yzg4Y2NiY2RmZmZmOTdjNGU3YTQ5NDk4NmY5OTZiZjhlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoK
ICAgICBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNh
bXBsZVJhdGUpOwogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKTsKIAot
ICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDlkYWE3
ZDAxNDFkODEwNGU0ZjVjNGMyNjQ4YmM4YzZiZTUyNmMwYzguLjVhMTJjZGU0ZmNkZmM1N2ZhZDQy
YjdkOWU4ZmU3MzIwNDM1MDlkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDUsOCArNDUs
OSBAQCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAKIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
On5Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKCkgPSBkZWZhdWx0OwogCi12b2lkIE1vY2tBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KCkKK3ZvaWQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9S
ZW5kZXJUaHJlYWQpCiB7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShk
aXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKFNlY29u
ZHMgeyBtX251bWJlck9mRnJhbWVzVG9Qcm9jZXNzIC8gc2FtcGxlUmF0ZSgpIH0pOwogICAgIHNl
dElzUGxheWluZyh0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKaW5kZXggZDRlYWU4MzM0MzVjMGE2
MDQ1NWVkMGI5NjkyNTY4YzhlYzYzZjM2ZC4uYThkMjhjNGVkMWJiZWZmZDMzMDk0NTBkYWFmMzI5
ZWJhMjUzNGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTM4LDEyICszOCwxNiBAQCBjbGFzcyBB
dWRpb0lPQ2FsbGJhY2s7CiBjbGFzcyBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hIGZpbmFsIDog
cHVibGljIEF1ZGlvRGVzdGluYXRpb25Db2NvYSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkgeyBy
ZXR1cm4gbWFrZVVuaXF1ZTxNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgc2Ft
cGxlUmF0ZSk7IH0KKyAgICBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywg
c2FtcGxlUmF0ZSkpOworICAgIH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIE1vY2tBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCiBwcml2
YXRlOgotICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7
CiAKICAgICB2b2lkIHRpY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyRXZlbnRMb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRM
b29wLmNwcAppbmRleCA3ZGFjYzBkYTQxNDBiMzFhN2ZlNGRkNjUwOWI5NDYzOWNmNTU0OGRlLi5h
NGU3ZGZmZjgyOWJjNzk3NzQzODAyZmYyMGYxZjQ1ODZkMzU0MzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuY3BwCkBAIC0zNywxMiArMzcsMTAgQEAgUmVmPFdv
cmtlckV2ZW50TG9vcD4gV29ya2VyRXZlbnRMb29wOjpjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUm
IGNvbnRleHQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyRXZlbnRMb29wKGNvbnRl
eHQpKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogUmVmPFdvcmtlckV2ZW50
TG9vcD4gV29ya2VyRXZlbnRMb29wOjpjcmVhdGUoV29ya2xldEdsb2JhbFNjb3BlJiBjb250ZXh0
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlckV2ZW50TG9vcChjb250ZXh0KSk7
CiB9Ci0jZW5kaWYKIAogV29ya2VyRXZlbnRMb29wOjpXb3JrZXJFdmVudExvb3AoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
KCZjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVu
dExvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmgKaW5kZXgg
ZGM0ZjQwNDUyZGM3ZTI5MDY4NDljMDVmNjVhYzNjNzc0NDRkNzFmZi4uMWNkMGVjYjZhMmYzMGU2
NjgzN2VkZjczZjdiNDJjMTkyODQ5MDY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJFdmVudExvb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckV2ZW50TG9vcC5oCkBAIC0zNywxMCArMzcsNyBAQCBjbGFzcyBXb3JrZXJFdmVudExvb3AgZmlu
YWwgOiBwdWJsaWMgRXZlbnRMb29wLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2Vydgog
cHVibGljOgogICAgIC8vIEV4cGxpY2l0bHkgdGFrZSBXb3JrZXJHbG9iYWxTY29wZSBhbmQgV29y
a2xldEdsb2JhbFNjb3BlIGZvciBkb2N1bWVudGF0aW9uIHB1cnBvc2VzLgogICAgIHN0YXRpYyBS
ZWY8V29ya2VyRXZlbnRMb29wPiBjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmKTsKLQotI2lmIEVO
QUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0YXRpYyBSZWY8V29ya2VyRXZlbnRMb29wPiBj
cmVhdGUoV29ya2xldEdsb2JhbFNjb3BlJik7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgfldvcmtl
ckV2ZW50TG9vcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCmluZGV4IGIyZjMzMTJjZjRiMDQ2MWI4N2ZhYWFjMzljZDQyYTA2M2U1OGFjNzMuLjFm
ZTkzOTg3ZWY5NjFmZGZiZTM4ZjQ3Y2E2NzFhZjVmZGE5OGQ5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01NDQsNCArNTQ0LDkgQEAgUmVm
ZXJyZXJQb2xpY3kgV29ya2VyR2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKICAg
ICByZXR1cm4gbV9yZWZlcnJlclBvbGljeTsKIH0KIAorVGhyZWFkKiBXb3JrZXJHbG9iYWxTY29w
ZTo6dW5kZXJseWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLnRocmVh
ZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYmQ5Y2YxNDBkZDUyZmI4NDk4YjlmYTQxMDYwYzkz
YWJmYTY4Mzg1ZS4uOTBkZjNiNmFmM2Q2M2VjNjFhZWM5YTEyM2MwODc3ZTc5ZTM0YjI2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAi
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmgiCkBAIC01OSw3ICs2MCw3IEBAIG5hbWVzcGFjZSBJREJDbGll
bnQgewogY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OwogfQogCi1jbGFzcyBXb3JrZXJHbG9iYWxT
Y29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFN1cHBs
ZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0
aWVzIHsKK2NsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2Vy
R2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBw
dWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxpdGllcywg
cHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKFdvcmtlckdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrZXJH
bG9iYWxTY29wZSgpOwpAQCAtODUsMTMgKzg2LDE1IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24mIHN3Q2xpZW50Q29ubmVjdGlvbigpOwogI2VuZGlmCiAKLSAgICBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQor
ICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2Ny
aXB0LmdldCgpOyB9CiAgICAgdm9pZCBjbGVhclNjcmlwdCgpIHsgbV9zY3JpcHQgPSBudWxscHRy
OyB9CiAKICAgICBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVy
KCkgY29uc3QgeyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlcjsgfQogCiAgICAgV29ya2Vy
VGhyZWFkJiB0aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZDsgfQogCisgICAgVGhyZWFk
KiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKICAgICB1c2luZyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFRh
c2smJikgZmluYWw7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5
bmNocm9ub3VzbHkuCkBAIC0xMTksNyArMTIyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAotICAgIGJvb2wgaXND
bG9zaW5nKCkgeyByZXR1cm4gbV9jbG9zaW5nOyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2Nsb3Npbmc7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3Nh
Z2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjU0OGUwODQ4YmUzNTIyYjZhZDljMzI4NTMzOTc0NmM3YzM5NzQy
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRocmVhZDsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgV1RGOjpUaHJlYWQq
IHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQ2xvc2lu
ZygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdCgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmY5YmY4M2U5MzBkZDE2NWQ4YTMzMDQ3MDUyYWQ1NWQyMmZhZmE3
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcigpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YWNxdWlyZUhlYXBBY2Nlc3MoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkVGltZXJTZXRO
b3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFj
aykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6
OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisKKyAgICB2
aXJ0dWFsIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0ID0gMDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3Au
Y3BwCmluZGV4IDY2ZWNkNTM2ZjgxM2QwMjljNDk3ZjFhZWE3ZjIxOWVkZmM3NWIzNzUuLmJiNjFm
YzVmMmE5N2RiODRiMTEzYmUyMjNjN2E3YWRjNzE5YjQ5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIlRocmVh
ZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlICJXb3Jr
ZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgog
CiAjaWYgVVNFKEdMSUIpCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKICAgICBJc0ZvckRl
YnVnZ2luZyBtX2lzRm9yRGVidWdnaW5nIHsgSXNGb3JEZWJ1Z2dpbmc6Ok5vIH07CiB9OwogCi12
b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQg
V29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQog
ewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVn
Z2luZzo6Tm8pOwogICAgIE1vZGVQcmVkaWNhdGUgbW9kZVByZWRpY2F0ZShkZWZhdWx0TW9kZSgp
KTsKQEAgLTE0MywxMyArMTQzLDEzIEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckds
b2JhbFNjb3BlKiBjb250ZXh0KQogICAgIHJ1bkNsZWFudXBUYXNrcyhjb250ZXh0KTsKIH0KIAot
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRlYnVnZ2VyTW9kZShX
b3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2Vy
UnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmIGNv
bnRleHQpCiB7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6Oklz
Rm9yRGVidWdnaW5nOjpZZXMpOwogICAgIHJldHVybiBydW5Jbk1vZGUoJmNvbnRleHQsIE1vZGVQ
cmVkaWNhdGUgeyBkZWJ1Z2dlck1vZGUoKSB9LCBXYWl0Rm9yTWVzc2FnZSk7CiB9CiAKLU1lc3Nh
Z2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNj
b3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRNb2RlKQorTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2Fp
dE1vZGUpCiB7CiAgICAgQVNTRVJUKG1vZGUgIT0gZGVidWdnZXJNb2RlKCkpOwogICAgIFJ1bkxv
b3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwpA
QCAtMTU4LDEwICsxNTgsMTAgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29w
OjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bklu
TW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgTW9kZVByZWRpY2F0ZSYgcHJl
ZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2Vy
UnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0LCBj
b25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRNb2RlKQogewogICAg
IEFTU0VSVChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkg
PT0gJlRocmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1Ro
cmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAKICAgICBKU0M6OkpTUnVuTG9vcFRpbWVy
OjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIHRpbWVyQWRkZWRUYXNrID0gV1RGOjpjcmVhdGVT
aGFyZWRUYXNrPEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uVHlwZT4oW3Ro
aXNdIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgaGVyZSwgd2Ug
anVzdCB3YW50IHRvIGxvb3AgYXJvdW5kIHJ1bkluTW9kZQpAQCAtMTg2LDEzICsxODYsMTMgQEAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xv
YmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICBpZiAod2FpdE1vZGUgPT0gV2FpdEZvck1lc3Nh
Z2UgJiYgcHJlZGljYXRlLmlzRGVmYXVsdE1vZGUoKSAmJiBtX3NoYXJlZFRpbWVyLT5pc0FjdGl2
ZSgpKQogICAgICAgICB0aW1lb3V0RGVsYXkgPSBzdGQ6Om1pbih0aW1lb3V0RGVsYXksIG1fc2hh
cmVkVGltZXItPmZpcmVUaW1lRGVsYXkoKSk7CiAKLSAgICBpZiAoV29ya2VyU2NyaXB0Q29udHJv
bGxlciogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byogc2NyaXB0
ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5yZWxlYXNlSGVhcEFjY2Vz
cygpOwogICAgICAgICBzY3JpcHQtPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKHRpbWVyQWRkZWRU
YXNrKTsKICAgICB9CiAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0
byB0YXNrID0gbV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2VGaWx0ZXJlZFdpdGhUaW1lb3V0
KHJlc3VsdCwgcHJlZGljYXRlLCB0aW1lb3V0RGVsYXkpOwotICAgIGlmIChXb3JrZXJTY3JpcHRD
b250cm9sbGVyKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBz
Y3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgewogICAgICAgICBzY3JpcHQtPmFjcXVpcmVIZWFw
QWNjZXNzKCk7CiAgICAgICAgIHNjcmlwdC0+cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24odGlt
ZXJBZGRlZFRhc2spOwogICAgIH0KQEAgLTIyMywxMCArMjIzLDEwIEBAIE1lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250
ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpy
dW5DbGVhbnVwVGFza3MoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1
bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4
dCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgp
LnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVu
ZGVybHlpbmdUaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAgIEFTU0VSVChtX21l
c3NhZ2VRdWV1ZS5raWxsZWQoKSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewpAQCAtMjYyLDcgKzI2
Miw3IEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdERlYnVnZ2VyVGFzayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrJiYgdGFzaykKICAgICBwb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNr
KSwgZGVidWdnZXJNb2RlKCkpOwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZv
cm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpU
YXNrOjpwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsK
ICAgICBpZiAoKCFjb250ZXh0LT5pc0Nsb3NpbmcoKSAmJiBjb250ZXh0LT5zY3JpcHQoKSAmJiAh
Y29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgfHwgbV90YXNrLmlz
Q2xlYW51cFRhc2soKSkKICAgICAgICAgbV90YXNrLnBlcmZvcm1UYXNrKCpjb250ZXh0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKaW5kZXggYThjOWRlYmQ4MGQ4MDk5NTRh
N2E5ZDY5MGY3NzQwNmQyNTI4MjY2OC4uZWUyNmIzN2YyOTljYTY5OWMwNGMwYjFjNzQ0MTUwNDgw
ODcxNTdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKQEAgLTM4LDcg
KzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE1vZGVQcmVkaWNhdGU7
Ci0gICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CisgICAgY2xhc3MgV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGU7CiAgICAgY2xhc3MgV29ya2VyU2hhcmVkVGltZXI7CiAKICAgICBjbGFzcyBX
b3JrZXJSdW5Mb29wIHsKQEAgLTQ3LDEzICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIH5Xb3JrZXJSdW5Mb29wKCk7CiAgICAgICAgIAogICAgICAgICAvLyBCbG9ja2luZyBj
YWxsLiBXYWl0cyBmb3IgdGFza3MgYW5kIHRpbWVycywgaW52b2tlcyB0aGUgY2FsbGJhY2tzLgot
ICAgICAgICB2b2lkIHJ1bihXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bihX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGVudW0gV2FpdE1vZGUgeyBX
YWl0Rm9yTWVzc2FnZSwgRG9udFdhaXRGb3JNZXNzYWdlIH07CiAKICAgICAgICAgLy8gV2FpdHMg
Zm9yIGEgc2luZ2xlIHRhc2sgYW5kIHJldHVybnMuCi0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2RlLCBX
YWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3Vs
dCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYpOworICAgICAgICBNZXNzYWdl
UXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNv
bnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7CisgICAgICAgIE1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUmKTsKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgICAgICBib29sIHRl
cm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsgfQpAQCAt
NzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBjb25zdCBTdHJp
bmcmIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KIAogICAgICAgICBwcml2YXRlOgot
ICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAg
ICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAg
ICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIG1fdGFzazsKICAgICAgICAg
ICAgIFN0cmluZyBtX21vZGU7CkBAIC04MywxMSArODMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3BTZXR1cDsKLSAg
ICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUq
LCBjb25zdCBNb2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOworICAgICAgICBNZXNzYWdlUXVldWVX
YWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IE1v
ZGVQcmVkaWNhdGUmLCBXYWl0TW9kZSk7CiAKICAgICAgICAgLy8gUnVucyBhbnkgY2xlYW4gdXAg
dGFza3MgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSBxdWV1ZSBhbmQgcmV0dXJucy4KICAgICAg
ICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgY29udGV4dCBpcyBjbG9z
ZWQgb3IgbG9vcCBoYXMgYmVlbiB0ZXJtaW5hdGVkLgotICAgICAgICB2b2lkIHJ1bkNsZWFudXBU
YXNrcyhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgIGJvb2wgaXNCZWluZ0RlYnVn
Z2VkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z0NvdW50ID49IDE7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0LmNwcAppbmRleCAzZDZlMGI3YWYwMWUyMTg1ZTFjOWZmOWRiMDdmZmQzMGVk
ZGQyMTc4Li4zOTA4YmRmM2EyOTZjODFiNmY0YmE4ZThlMDhlM2ZjNTgyZWU1ZTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcApAQCAtMjgsMjcgKzI4LDc2IEBACiAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKLSNpbmNsdWRlICJX
b3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
V29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgIldvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdU
YXNrcy5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXQpOwogCi1SZWY8V29ya2xldD4gV29ya2xldDo6Y3Jl
YXRlKCkKK1dvcmtsZXQ6OldvcmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KCZkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrbGV0
KCkpOwogfQogCi1Xb3JrbGV0OjpXb3JrbGV0KCkKK1dvcmtsZXQ6On5Xb3JrbGV0KCkgPSBkZWZh
dWx0OworCitEb2N1bWVudCogV29ya2xldDo6ZG9jdW1lbnQoKQoreworICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSL3dvcmtsZXRzLTEvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQordm9pZCBX
b3JrbGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkxTdHJpbmcsIFdvcmtsZXRP
cHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBVUkwgbW9kdWxlVVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1vZHVsZVVSTFN0
cmluZyk7CisgICAgaWYgKCFtb2R1bGVVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTW9kdWxlIFVSTCBpcyBpbnZhbGlkIl9z
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fcHJveGllcy5pc0VtcHR5
KCkpCisgICAgICAgIG1fcHJveGllcy5hcHBlbmRWZWN0b3IoY3JlYXRlR2xvYmFsU2NvcGVzKCkp
OworCisgICAgYXV0byBwZW5kaW5nVGFza3MgPSBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpjcmVhdGUo
KnRoaXMsIFdURk1vdmUocHJvbWlzZSksIG1fcHJveGllcy5zaXplKCkpOworICAgIG1fcGVuZGlu
Z1Rhc2tzU2V0LmFkZChwZW5kaW5nVGFza3MuY29weVJlZigpKTsKKworICAgIGZvciAoYXV0byYg
cHJveHkgOiBtX3Byb3hpZXMpIHsKKyAgICAgICAgcHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29y
a2xldEdsb2JhbFNjb3BlKFtwZW5kaW5nVGFza3MgPSBwZW5kaW5nVGFza3MuY29weVJlZigpLCBt
b2R1bGVVUkwgPSBtb2R1bGVVUkwuaXNvbGF0ZWRDb3B5KCksIGNyZWRlbnRpYWxzID0gb3B0aW9u
cy5jcmVkZW50aWFscywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhp
cyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAg
ICAgZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5mZXRjaEFuZEludm9rZVNj
cmlwdChtb2R1bGVVUkwsIGNyZWRlbnRpYWxzLCBbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5k
aW5nVGFza3MpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVuZGluZ1Rhc2tzKSwg
ZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbiksIHBlbmRpbmdBY3Rpdml0eSA9
IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+
YWJvcnQoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+ZGVjcmVtZW50Q291bnRlcigpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sIFdvcmtlclJ1
bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgIH0KK30KKwordm9pZCBXb3JrbGV0OjpmaW5pc2hQ
ZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdUYXNrcyYgdGFza3MpCiB7CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nVGFza3NTZXQuY29udGFpbnMoJnRh
c2tzKSk7CisKKyAgICBtX3BlbmRpbmdUYXNrc1NldC5yZW1vdmUoJnRhc2tzKTsKIH0KIAotdm9p
ZCBXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwg
V29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK2Nv
bnN0IGNoYXIqIFdvcmtsZXQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewotICAgIC8v
IEZJWE1FOiBBZGQgcHJvcGVyIGltcGxlbWVudGF0aW9uLgotICAgIFVOVVNFRF9QQVJBTShtb2R1
bGVVUkwpOwotICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIHJldHVybiAiV29ya2xldCI7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaAppbmRl
eCBiMmJlZGM2NTg2NWI3NGY1Zjk5NTZmMDRjZmNjYzNmODM1MTlmMmUxLi40MTY4Njc0YzczYjI5
OTA5YmE2Mjk2MjU3MjFiMzgwNTNlMjI3YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5o
CkBAIC0yNSwyNyArMjUsNDUgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
ICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5o
IgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERvY3VtZW50OworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHk7CitjbGFzcyBXb3JrbGV0
UGVuZGluZ1Rhc2tzOwogCi1zdHJ1Y3QgV29ya2xldE9wdGlvbnM7Ci0KLWNsYXNzIFdvcmtsZXQg
OiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7Citj
bGFzcyBXb3JrbGV0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXb3JrbGV0PiwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0KTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdvcmtsZXQ+IGNyZWF0ZSgpOwotICAgIHZpcnR1YWwgfldvcmtsZXQo
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+V29ya2xldCgpOwogICAgIAotICAgIHZpcnR1YWwg
dm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xl
dE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZpcnR1YWwgdm9p
ZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgZmluaXNoUGVuZGluZ1Rhc2tz
KFdvcmtsZXRQZW5kaW5nVGFza3MmKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKKworICAg
IGNvbnN0IFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiYgcHJveGllcygpIGNv
bnN0IHsgcmV0dXJuIG1fcHJveGllczsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2xldCgpOwor
ICAgIGV4cGxpY2l0IFdvcmtsZXQoRG9jdW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMo
KSA9IDA7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xv
YmFsU2NvcGVQcm94eT4+IG1fcHJveGllczsKKyAgICBIYXNoU2V0PFJlZlB0cjxXb3JrbGV0UGVu
ZGluZ1Rhc2tzPj4gbV9wZW5kaW5nVGFza3NTZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCmluZGV4IDBiNzc0YzI3NGFhZjIwZTBj
Yzg4Mzc3MjcxYzcxNmEwMGZhZjllNjEuLjI5M2NmMDZlMTU1NmU5YjU3N2EyYTRkMTk1ODhkMTY4
MDZhYmVlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCkBAIC0yNCw4ICsyNCwx
MCBAQAogKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFeHBvc2VkPVdpbmRvdywK
KyAgICBHbG9iYWw9V29ya2xldCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZh
Y2UgV29ya2xldCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHVuZGVmaW5lZD4g
YWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmtsZXRPcHRpb25zIG9w
dGlvbnMpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3RyaW5nIG1vZHVs
ZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggM2I3NTgyYWZmY2Qw
NGIxNDYyOTBmM2E3NDY4NjczNGFjNjkwZmVmMi4uZmI4YmFhNWRlZmM5ZTg3NTNmMGM0MmVlY2Zm
OWI2NGVlMzIzNDAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuY3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQ
SSkKLQogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIKQEAgLTM2LDcgKzM0LDYg
QEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCi0jaW5jbHVkZSAiV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAgLTQ3LDEwICs0NCwyMiBAQCB1c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2xldEdsb2JhbFNj
b3BlKTsKIAorV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgVVJM
JiB3aW5kb3dVUkwpCisgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyPih0aGlzKSkKKyAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVV
bmlxdWUoKSkKKyAgICAsIG1fdXJsKHdpbmRvd1VSTCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9
IGFsbFdvcmtsZXRHbG9iYWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CisgICAgQVNTRVJUX1VOVVNF
RChhZGRSZXN1bHQsIGFkZFJlc3VsdCk7CisKKyAgICBzZXRTZWN1cml0eU9yaWdpblBvbGljeShT
ZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNvcHlSZWYoKSkpOworfQor
CiBXb3JrbGV0R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IG1f
ZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1
ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4oV1RGTW92ZSh2bSksIHRoaXMpKQogICAgICwgbV90
b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwoY29k
ZS51cmwoKSkKICAgICAsIG1fY29kZShXVEZNb3ZlKGNvZGUpKQogewogICAgIGF1dG8gYWRkUmVz
dWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKQEAgLTYxLDcgKzcw
LDcgQEAgV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2bSwgU2MKICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgp
KTsKIAogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5Ojpj
cmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7Ci0gICAgc2V0Q29udGVudFNlY3VyaXR5UG9s
aWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBtX2NvZGUudXJsKCkg
fSwgKnRoaXMpKTsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxDb250
ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IHRoaXMtPnVybCgpIH0sICp0aGlzKSk7CiB9CiAKIFdv
cmtsZXRHbG9iYWxTY29wZTo6fldvcmtsZXRHbG9iYWxTY29wZSgpCkBAIC0xMTMsNyArMTIyLDgg
QEAgU3RyaW5nIFdvcmtsZXRHbG9iYWxTY29wZTo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBj
b25zdAogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZXZhbHVhdGUoKQogewotICAgIG1fc2Ny
aXB0LT5ldmFsdWF0ZShtX2NvZGUpOworICAgIGlmIChtX2NvZGUpCisgICAgICAgIG1fc2NyaXB0
LT5ldmFsdWF0ZSgqbV9jb2RlKTsKIH0KIAogYm9vbCBXb3JrbGV0R2xvYmFsU2NvcGU6OmlzSlNF
eGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdApAQCAtMTM1LDcgKzE0NSw3IEBAIFVSTCBXb3JrbGV0
R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBGb3JjZVVURjgpIGNv
bnN0CiB7CiAgICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwotICAg
IHJldHVybiBVUkwobV9jb2RlLnVybCgpLCB1cmwpOworICAgIHJldHVybiBVUkwodGhpcy0+dXJs
KCksIHVybCk7CiB9CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpsb2dFeGNlcHRpb25Ub0Nv
bnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4mJiBzdGFjaykKQEAgLTE3MSw1ICsxODEsMTEgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xldEds
b2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJuIFJlZmVycmVyUG9s
aWN5OjpOb1JlZmVycmVyOwogfQogCit2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJ
bnZva2VTY3JpcHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBGSVhNRTogQWRkIGlt
cGxlbWVudGF0aW9uLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCAyNWQ1NDlhYzRhMGFhNmZmNzUyODc1NWQ3MDQ3
YzgxNGVlN2RjNDA0Li45ODE0MTU5ZGUyYjUwM2E4MDhjODA4NzA0MmY2NzM1MzY3YmZmMzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMjYs
MzAgKzI2LDMyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19B
UEkpCi0KICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3Jp
cHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCisjaW5jbHVkZSAi
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+Ci0jaW5jbHVkZSA8d3RmL1VS
TC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8
d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgV29ya2VyRXZlbnRMb29wOwot
Y2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CiAKIGVudW0gV29ya2xldEdsb2JhbFNjb3Bl
SWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1j
bGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFs
U2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNv
dW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsIHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldv
cmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtNTcsMTEgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0ID0gSGFzaFNldDxjb25zdCBXb3JrbGV0R2xvYmFsU2Nv
cGUqPjsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV29ya2xldEdsb2JhbFNjb3Blc1NldCYg
YWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpOwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19B
UEkpCiAgICAgdmlydHVhbCBib29sIGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICB2aXJ0
dWFsIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisjZW5kaWYKIAogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29wKCkgZmluYWw7
CiAKLSAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZS51cmwo
KTsgfQorICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91cmw7IH0K
IAogICAgIHZvaWQgZXZhbHVhdGUoKTsKIApAQCAtNzAsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0g
ICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0Lmdl
dCgpOyB9CisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0
dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsKIApAQCAtNzks
NiArODYsMTAgQEAgcHVibGljOgogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVy
KCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogCisgICAgLy8gV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pc0Nsb3Npbmc7IH0KKwogICAgIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNTZWN1cmVDb250ZXh0KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtODYsNyArOTcsMTAgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogCisgICAgdm9pZCBmZXRj
aEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVj
dGVkOgorICAgIFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCk7CiAgICAg
V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50JiwgUmVmPEpTQzo6Vk0+JiYsIFNjcmlwdFNvdXJj
ZUNvZGUmJik7CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFdvcmtsZXRHbG9iYWxTY29w
ZSYpID0gZGVsZXRlOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShXb3JrbGV0R2xvYmFsU2NvcGUm
JikgPSBkZWxldGU7CkBAIC0xMzYsOCArMTUwLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdv
cmtlckV2ZW50TG9vcD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9v
cFRhc2tHcm91cD4gbV9kZWZhdWx0VGFza0dyb3VwOwogCisgICAgVVJMIG1fdXJsOwogICAgIEpT
Qzo6UnVudGltZUZsYWdzIG1fanNSdW50aW1lRmxhZ3M7Ci0gICAgU2NyaXB0U291cmNlQ29kZSBt
X2NvZGU7CisgICAgT3B0aW9uYWw8U2NyaXB0U291cmNlQ29kZT4gbV9jb2RlOworICAgIGJvb2wg
bV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAt
MTQ1LDQgKzE2MSwzIEBAIHByaXZhdGU6CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZSkKIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0Lmlz
V29ya2xldEdsb2JhbFNjb3BlKCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNj
b3BlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwK
aW5kZXggZDc1OWYwY2UxZDE2Zjg2OTE4NjAxMjc3NmYwZGIxNmI2MWJhYTQ3OC4uYmYwNzEzODRh
M2YzMDhmZjZjNjQ1Yzk1ODRjYjNiMWNiOWU1ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCkBAIC0yNiw4ICsyNiw2IEBACiBbCiAgICAg
Q3VzdG9tUHJveHlUb0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9V29ya2xldCwKLSAgICBFbmFibGVk
QXRSdW50aW1lPUNTU1BhaW50aW5nQVBJLAotICAgIENvbmRpdGlvbmFsPUNTU19QQUlOVElOR19B
UEksCiAgICAgSlNMZWdhY3lQYXJlbnQ9SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLAogICAgIElt
cGxpY2l0VGhpcywKICAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhYzVkOTFjYzdkMDI0MjBiNWZhZmYyMTkxYzBlZWY4ZmY5YTVkN2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94
eS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRl
bnRpYWxzLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldFBlbmRpbmdUYXNrczsKKworY2xh
c3MgV29ya2xldEdsb2JhbFNjb3BlUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
V29ya2xldEdsb2JhbFNjb3BlUHJveHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrbGV0
R2xvYmFsU2NvcGVQcm94eSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFz
a0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
JiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZmZlNWQ3NjFhZjQ2ZjI2MTQxMTc5MDRhYzEwNGMzMDQ5MTE0NWQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVu
ZGluZ1Rhc2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBlbmRpbmdUYXNr
czo6V29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICA6IG1fd29ya2xldChtYWtlV2Vh
a1B0cih3b3JrbGV0KSkKKyAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwg
bV9jb3VudGVyKGNvdW50ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKK30KKwor
dm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjphYm9ydChFeGNlcHRpb24mJiBleGNlcHRpb24pCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY291bnRlciA9IC0xOworICAgIG1fcHJvbWlzZS5y
ZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICBpZiAobV93b3JrbGV0KQorICAgICAgICBt
X3dvcmtsZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7Cit9CisKK3ZvaWQgV29ya2xldFBl
bmRpbmdUYXNrczo6ZGVjcmVtZW50Q291bnRlcigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAg
IC0tbV9jb3VudGVyOworICAgIGlmICghbV9jb3VudGVyKSB7CisgICAgICAgIG1fcHJvbWlzZS5y
ZXNvbHZlKCk7CisgICAgICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgICAgICBtX3dvcmtsZXQt
PmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGlu
Z1Rhc2tzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzMzZDZiYmFiZTBlOWI5M2UyODNhMzI4NjcxNWNhODlkYzI2YzA5YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0OworCisvLyBodHRwczov
L2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29ya2xldHMvI3BlbmRpbmctdGFza3Mtc3RydWN0Citj
bGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdv
cmtsZXRQZW5kaW5nVGFza3M+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtsZXRQZW5k
aW5nVGFza3M+IGNyZWF0ZShXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdvcmtsZXRQZW5kaW5nVGFza3Mod29ya2xldCwgV1RGTW92ZShwcm9taXNlKSwgY291
bnRlcikpOworICAgIH0KKworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uJiYpOworICAgIHZvaWQg
ZGVjcmVtZW50Q291bnRlcigpOworCitwcml2YXRlOgorICAgIFdvcmtsZXRQZW5kaW5nVGFza3Mo
V29ya2xldCYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmLCBpbnQgY291bnRlcik7CisKKyAg
ICBXZWFrUHRyPFdvcmtsZXQ+IG1fd29ya2xldDsKKyAgICBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4gbV9wcm9taXNlOworICAgIGludCBtX2NvdW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggMjBhNmY4NTYxODU4YWRmYmUyZTJiYzE4ZWJmNzE1MGI5N2FkMTRm
OC4uMTdkZjVlMWYzY2YwNjU3MTRiY2VmNzVlZDg1ZmNhZDUzOGY2ZTgwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAt
MjYsOCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1
ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIK
QEAgLTU2LDYgKzU1LDExIEBAIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcihSZWY8Vk0+JiYgdm0sIFdvcmtsZXRHbG9iYWxTY29wCiAgICAgSlNWTUNsaWVu
dERhdGE6OmluaXROb3JtYWxXb3JsZChtX3ZtLmdldCgpKTsKIH0KIAorV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSogd29y
a2xldEdsb2JhbFNjb3BlKQorICAgIDogV29ya2xldFNjcmlwdENvbnRyb2xsZXIoVk06OmNyZWF0
ZSgpLCB3b3JrbGV0R2xvYmFsU2NvcGUpCit7Cit9CisKIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojp+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZt
KCkpOwpAQCAtMTQ1LDEwICsxNDksMTkgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
aW5pdFNjcmlwdCgpCiAgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCiAgICAgICAgIHJl
dHVybjsKIAorI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGlmIChpczxQYWludFdv
cmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7CiAgICAgICAgIGluaXRT
Y3JpcHRXaXRoU3ViY2xhc3M8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVByb3RvdHlwZSwgSlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZSwgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAg
aWYgKGlzPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsK
KyAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
UHJvdG90eXBlLCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLCBBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZT4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CkBAIC0xOTYsNSArMjA5LDYyIEBAIHZvaWQgV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OnNldEV4Y2VwdGlvbihKU0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uKQogICAgIHRo
cm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOwogfQog
Cit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZWxlYXNlSGVhcEFjY2VzcygpCit7Cisg
ICAgbV92bS0+aGVhcC5yZWxlYXNlQWNjZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OmFjcXVpcmVIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLmFjcXVpcmVB
Y2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWRkVGltZXJTZXRO
b3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFj
ayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGlt
ZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHRpbWVyLT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsK
KworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOwor
ICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAg
IHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQg
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6
SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2spCit7Cisg
ICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVyKiB0aW1lcikgeworICAg
ICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aW1lci0+cmVt
b3ZlVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisKKyAgICBwcm9jZXNz
VGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGlt
ZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIo
bV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRD
b250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCkKK3sKKyAgICBpZiAobV9p
c1Rlcm1pbmF0aW5nRXhlY3V0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB7CisgICAgICAg
IC8vIFRoZSBtdXRleCBwcm92aWRlcyBhIG1lbW9yeSBiYXJyaWVyIHRvIGVuc3VyZSB0aGF0IG9u
Y2UKKyAgICAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkgd2lsbAorICAgICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBsZXhpY2Fs
R2xvYmFsT2JqZWN0IHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgICAg
ICBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24gPSB0cnVlOworICAgIH0KKyAgICBtX3ZtLT5ub3Rp
ZnlOZWVkVGVybWluYXRpb24oKTsKK30KKworYm9vbCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0Cit7CisgICAgLy8gU2VlIGNvbW1lbnRzIGlu
IHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdlLgorICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAg
IHJldHVybiBtX2lzVGVybWluYXRpbmdFeGVjdXRpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgKaW5kZXggZTM2ZDJhMjQyYmY1NDY0ZmEyN2NmM2RhOWFiNTI4NGYwMDA0
ZDZlZS4uNmQ0M2NlNWY5ZmZkMmE3MGFmMGJmNmU1YWVlNTRjZDhmYWM3MmYyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0y
NSw4ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19B
UEkpCi0KKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpA
QCAtNDYsOSArNDUsMTEgQEAgY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3Jr
bGV0R2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIAotY2xhc3MgV29y
a2xldFNjcmlwdENvbnRyb2xsZXIgeworLy8gRklYTUU6IFdlIHNob3VsZCBzaGFyZSBtb3JlIGNv
ZGUgd2l0aCBXb3JrZXJTY3JpcHRDb250cm9sbGVyLgorY2xhc3MgV29ya2xldFNjcmlwdENvbnRy
b2xsZXIgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV29ya2xldFNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cihXb3JrbGV0R2xvYmFsU2NvcGUqKTsKICAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8
SlNDOjpWTT4mJiwgV29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgfldvcmtsZXRTY3JpcHRDb250
cm9sbGVyKCk7CiAKQEAgLTY0LDYgKzY1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpc2FibGVXZWJBc3Nl
bWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKKyAgICB2b2lkIHJlbGVhc2VIZWFw
QWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOworCisg
ICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1l
ck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90
aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sp
IGZpbmFsOworCisgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAg
Ym9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGV2
YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmlu
ZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKQEAgLTg3LDcgKzk3LDgg
QEAgcHJpdmF0ZToKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUqIG1fd29ya2xldEdsb2JhbFNjb3Bl
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrbGV0Q29uc29sZUNsaWVudD4gbV9jb25zb2xlQ2xp
ZW50OwogICAgIEpTQzo6U3Ryb25nPEpTV29ya2xldEdsb2JhbFNjb3BlPiBtX3dvcmtsZXRHbG9i
YWxTY29wZVdyYXBwZXI7CisgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25M
b2NrOworICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsgZmFsc2UgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5jcHAKaW5kZXggNmExMDFjMzk1OTNjYzRjMTU0Yzc0NWY2ZDc5NzM3YTAyYTkyM2Y2ZC4uMGI5
YWIxZGNlMzRhNTIwZDgyZTJmYWQ1ZjVkMDZhODY5ZWY3NGQ5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcCgp
OwogICAgIH0KIAotICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0K
KyAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCh7IH0pOyB9CiAgICAgdm9p
ZCBzdG9wKCkgeyBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7IH0KICAgICBib29sIGlzUGxheWluZygp
IHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmlzUGxheWluZygpOyB9CiAgICAgdW5zaWduZWQgZnJh
bWVzUGVyQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+ZnJhbWVzUGVyQnVm
ZmVyKCkgOyB9CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKIAogICAgIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllciBtX2lkOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBt
X2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9u
OwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5n
R3JhY2VmdWxTaHV0ZG93bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cAppbmRleCAwNjk0NWJhZmQ1ZDE4OWM3YTBmOWM3MjQwMmJiODg5ZGM4MDdmNmY0Li44MjEzODAw
YjlmMTBjNTgyNjBlMDdhNzkwZjdjYjIwYTdlMGVhMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCkBAIC00MywxMCArNDMsMTAgQEAgdXNpbmcgQXVkaW9CdXMgPSBXZWJD
b3JlOjpBdWRpb0J1czsKIHVzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uOwogdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxi
YWNrOwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKK1JlZjxBdWRp
b0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLAogICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eT4oY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5w
dXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KGNhbGxiYWNrLCBp
bnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIHNhbXBsZVJhdGUpKTsKIH0KIAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCkBAIC03Nyw4
ICs3Nyw5IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpzdGFydCgpCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQoRnVu
Y3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQp
CiB7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb24obV9kZXN0
aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CkBAIC04
OSwxOSArOTAsMzEgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCiAg
ICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlv
RGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CisgICAgbV9kaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9C
dXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyByZW5kZXJpbmcgb24gdGhlIG1haW4gdGhyZWFkIHdo
ZW4gQXVkaW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUsIHdoaWNoIGlzIGxpa2VseSBub3QgYSBnb29k
IGlkZWEuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNE
YXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVm
ZmVycy5zaXplKCkpOwogICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlv
QnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nl
c3MsIGZhbHNlKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNo
YW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1l
bW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBh
dWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAs
IGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0Rh
dGEub3V0cHV0UG9zaXRpb24pOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBhdXRv
IGRvUmVuZGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9C
dXMgPSBXVEZNb3ZlKGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRp
b25dIHsKKyAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOworICAgIH07CisgICAgaWYgKG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZCkgeworICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVu
ZGVyID0gV1RGTW92ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb1JlbmRlcigpOworICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmgKaW5kZXggYWRhNmZlZWZmMzc0MzBmM2M0ZGQzN2YxM2M3ZTNhNGU3
NjZhMzlkYS4uOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3ZTE4ZWNmYjVhYTVmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogICAgIHVzaW5nIEF1ZGlvSU9D
YWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKIAotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBz
dGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIH5SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24KLSAgICB2b2lkIHN0YXJ0
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQo
KT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lz
UGxheWluZzsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3NhbXBsZVJhdGU7IH0KQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2ZyYW1lc1BlckJ1ZmZlciB7IDAgfTsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07
CisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5k
ZXJUaHJlYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4
IDJlODYxYTFlNGUzMWUxNDc4MmEyYjllODMxOThjMTY3YTU5NDYxMTMuLmQ1YWVmMTUzNGFkMjM2
NWQyMTM3YTE3YjZmNmQ0NGUxZWY4NTE5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtNDUsNyArNDUs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0
ZWd5KCkgPSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLXN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRp
b0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0
cmluZyYgaW5wdXREZXZpY2VJZCwKK1JlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJN
ZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxs
YmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICB1bnNpZ25l
ZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApp
bmRleCA4MTdjNGMyOWIxNzMyZjQ1ZjkwZTIxNTVkNjVjZWU4NDdjMTdiZWUyLi42YjdiOWNlNjAz
YTg3MzllNzFkOTA0NzVmY2M3ODcyNjhmNmQ5ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtMzksNyArMzks
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAgIFJlZjxXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
ayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGZhZjkzYjczYTJiMDE0MTAzODA1YTVjYzZiY2E3
YjY1M2E2NTI3YjcuLmViYmIzYmVhNmVkYmI0N2JjYjRlMmQwYjI5N2ZjZDA1ZWJhNjMyOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTY5LDcgKzY5LDcgQEAgUGFzdGVib2Fy
ZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVn
eSgpCiBjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kg
ewogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9u
OjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAppbmRleCBkZjRhMWY3ODUwNGRiZTIzMGE5NzdlOTdmZDI1OWQyNGU0ZjkyMDMx
Li5lMDM0MjNkNzUzY2IxOTgwZWUzZWI4ODkyZmEyODUxZWU0OTYyNTJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFz
cyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0
ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ss
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUo
Y2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KaW5kZXggNGQ2M2Y0MGNmZWQ3NzJhNTZjMjU0YzA1MzEwNzMyNWEyZDlh
YjZlMy4uNzQ2MTlkZTQ4ZTYxNDFhZDdkOWJlZDI2YzAxNjdmODFlMTVkOWI0ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODM4LDYgKzgzOCw3IEBA
IHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBw
cmVmZXJlbmNlcykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0
aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NJbmRpdmlk
dWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ6WUVTXTsKKyAgICBbcHJlZmVyZW5jZXMgc2V0
QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVz
dC4KQEAgLTkzMSw3ICs5MzIsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9D
b25zaXN0ZW50VmFsdWVzKCkKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJBdWRpb0VuYWJsZWQ6
WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxl
ZDpZRVNdOwotICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldE1lZGlhU291cmNlRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRTb3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZDpZRVNdOwogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMzFhZWMzODJlN2JhM2EzYWJmOWYyNzEy
MmZiODRlMjA1Nzg4MDdjNC4uMWQwOTEzYjRlZjA1OWE0ZTFlNzkwNmM1ZWI0OWRlZGI2NjQ2NDU5
NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIs
NyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0
X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2Rl
cGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2lu
ZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICBkZWYgZ2VuZXJhdGVf
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50
YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxl
LCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0
ZW1wZmlsZS5ta3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihp
bnB1dF9kaXJlY3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRo
LnNwbGl0ZXh0KGlucHV0X2ZpbGUpCkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVz
dHM6CiAgICAgICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAg
ICAgICAgICAgICAgJy0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmts
ZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tYXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAg
ICAgJy0tdmFsaWRhdGVBZ2FpbnN0UGFyc2VyJ10KIApAQCAtMjAxLDYgKzIwMiw3IEBAIGNsYXNz
IEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bCcKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBwYWludHdvcmtsZXRn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsJworICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsJwogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0Jp
bmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbCcKIAogICAgICAgICB3b3JrX2RpcmVjdG9y
eSA9IHRlbXBmaWxlLm1rZHRlbXAoKQpAQCAtMjEzLDkgKzIxNSwxMCBAQCBjbGFzcyBCaW5kaW5n
c1Rlc3RzOgogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0
cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUpCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRf
cmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVz
dWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxl
bWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxl
LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWlu
dHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUs
IHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3Rv
cnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBhIHN1cHBs
ZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUod29y
a19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzNSw2ICsyMzgsOCBAQCBj
bGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBG
YWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29w
ZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2ds
b2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICBhbGxf
dGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hh
bmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxf
dGVzdHNfcGFzc2VkID0gRmFsc2UKIAo=
</data>
<flag name="commit-queue"
          id="426129"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410238</attachid>
            <date>2020-10-01 09:45:43 -0700</date>
            <delta_ts>2020-10-01 09:52:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20201001094542.patch</filename>
            <type>text/plain</type>
            <size>169912</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzZTNkOGYwY2Yw
N2JkMzQ3YjUzNzVkNGQ1MzNmYjdmYjJiODQwNy4uNDEwOWU3ZWFkMWNmZTM2YmRmYTA0YjkyNWQx
MjQzMmI3MjE3NjI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0xMC0wMSAgQWRyaWFuIFBl
cmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IEFkZCBtaXNzaW5nIGd1YXJkIGFyb3VuZCBNb2Rlcm5QYXRoIHVzYWdlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
NTM1ODdjMGYxNzVlYzk2ODhmMWU1N2NlYjc3MDgxNGNkOGQ3Y2ZjLi5kMDVkZTViZDRkODA2MGM4
MDU2NjAzZDAxZTQwMzhmMTIyMDMwMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIw
LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgdG8gbWF0Y2ggd2hhdCB3YXMgZG9uZSBpbiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuCisg
ICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBpcyB1c2VkIHdoZW4gdGhlIEdQVSBw
cm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbjo6c3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oOgorCiAyMDIwLTEwLTAxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVJlY29yZGVyIHNob3VsZCBzdXBw
b3J0IE1lZGlhUmVjb3JkZXJPcHRpb25zLm1pbWVUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThmZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5
NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRp
b1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbUHJlZmVyZW5jZXNd
IEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzEx
N2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEw
Mjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdhY3kgc2hvdWxkIGNhbGwgUGFnZTo6Zmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBm
NWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2JhODkzZjk3Li5hM2UxZTYxZGJjZDExNWRk
MmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApA
QCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1
bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKICAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKKyAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX0FV
RElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVlNDYzNTU0NmY3NmNmOTBlLi4xOTQzODAy
M2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYsNiArMTc2Nyw3IEBAIHNldChERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9BdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJ
RVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9JTkNMVURFX0RJUkVDVE9SSUVTICR7
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMs
OCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICAgICAgLS1kZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSkKIGxpc3QoQVBQRU5E
IFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5kaW5ncykKIAogaWYgKEVOQUJMRV9XRUJJ
TlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFkY2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4
ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVkMjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDYgKzMzMCw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1w
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCisk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGExM2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4
ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEsNCArMSw1IEBACiAjIFRoaXMgZmls
ZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0
eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291cmNl
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRO
b2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4y
YzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYyMDYwNmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydQogU0VS
VklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogUEFJTlRXT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1Q
ID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNfRklMRSA9ICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApAQCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJ
RExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisg
ICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKICMKIElETF9J
TlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklM
RVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNf
U0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFU
VVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtl
ICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKIAkkKGZvcmVhY2gg
ZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+JChJRExfRklMRVNfVE1QKSQoTkwpKQot
CSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAt
LWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVND
UklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVz
RmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUg
JChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUg
JChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChX
SU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkg
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMg
IiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1p
ZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElE
TF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVN
RU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VC
U1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5U
V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtF
RklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmgg
OiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJ
RExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBF
TkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMyMmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2
Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmViZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcg
KzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlT
ZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBv
c2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMu
LmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKQEAgLTMxLDE1ICsz
MSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0Lmgi
CiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1Jl
ZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldChkb2N1bWVu
dCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiB3b3JrbGV0
OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxT
Y29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVHbG9iYWxTY29wZXMoKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7CisgICAgLy8gV2ViQXVkaW8gdXNlcyBh
IHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJuIHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVkaW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQo
KQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1ZGlvV29ya2xldDo6cHJveHkoKSBjb25z
dAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5wcm94aWVzKCk7CisgICAgaWYgKHByb3hp
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNh
c3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHByb3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQw
NTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRkNDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaApAQCAt
MzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVkaW9Xb3Jr
bGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7
CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxB
dWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOworCisgICAgQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7
CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3VtZW50Jik7CisKKyAgICAvLyBXb3JrbGV0
LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxT
Y29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAppbmRleCBiYzVlYThm
MGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3Li44MGM2YTcyNDAxODNjNDc1NzQ2Mjlj
ODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRp
b25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAg
RW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZWVhZjE4NjYwMWEyNDZmNjUyY2Q3MmIwMDRjYmI0YTk0NGZlOGJh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgi
CisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSk7CisKK0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVh
ZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBXb3JrbGV0R2xv
YmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwsIHBhcmFtZXRlcnMuanNSdW50aW1lRmxhZ3Mp
CisgICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Cit9CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUo
KSA9IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlp
bmdUaHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJk
MjMzYWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVj
dCBXb3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7
CisgICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1
bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRl
cnMmKTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFk
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNU
eXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0
dXJuIGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xv
YmFsU2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcw
OTJhNGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1B
dWRpb1dvcmtsZXQsCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVU
b05hdGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5
cGVFeG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblBy
b3RvdHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNl
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJ
bXBsZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJjMzczYWM0ZTE4Nzc2Mjk4ZDA5NjdkZmE1ZjJjMWEzMDU0ZTJiZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUg
IkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXb3JrbGV0
UGVuZGluZ1Rhc2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFdvcmtsZXRQ
YXJhbWV0ZXJzIGdlbmVyYXRlV29ya2xldFBhcmFtZXRlcnMoQXVkaW9Xb3JrbGV0JiB3b3JrbGV0
KQoreworICAgIGF1dG8qIGRvY3VtZW50ID0gd29ya2xldC5kb2N1bWVudCgpOworICAgIGF1dG8q
IGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgYXV0byBqc1J1bnRpbWVGbGFncyA9IGZy
YW1lID8gZnJhbWUtPnNldHRpbmdzKCkuamF2YVNjcmlwdFJ1bnRpbWVGbGFncygpIDogSlNDOjpS
dW50aW1lRmxhZ3MoKTsKKworICAgIHJldHVybiB7CisgICAgICAgIGRvY3VtZW50LT51cmwoKSwK
KyAgICAgICAganNSdW50aW1lRmxhZ3MKKyAgICB9OworfQorCitBdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eTo6QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0JiB3b3JrbGV0
KQorICAgIDogbV93b3JrbGV0KG1ha2VXZWFrUHRyKHdvcmtsZXQpKQorICAgICwgbV93b3JrbGV0
VGhyZWFkKEF1ZGlvV29ya2xldFRocmVhZDo6Y3JlYXRlKGdlbmVyYXRlV29ya2xldFBhcmFtZXRl
cnMod29ya2xldCkpKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dv
cmtsZXRUaHJlYWQtPnN0YXJ0KCk7Cit9CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7
CisgICAgbV93b3JrbGV0VGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUo
dGFzayksIG1vZGUpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZhN2FkZjRmMjgzODAzYWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29y
a2xldDsKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dv
cmtsZXQmIHdvcmtsZXQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eSh3b3JrbGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5KCk7CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRo
ZSBtYWluIHRocmVhZCB0byBwb3N0IHRhc2sgYmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisg
ICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7
CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisKKyAgICBXZWFrUHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0Owor
ICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3Jl
OjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBX
ZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5Lmlz
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19F
TkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCmluZGV4IDU2MjcxNDg2
NjNmMDQyMThiMWU1NTA1MTc1YjA0OTVhNTQ2OTEyMDYuLjM0MGI4Y2FiMWQyNDM0MGY5YTY2N2I0
ZWE3NTJiYjVjN2YyYzMzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAgICAg
Q29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0
LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0LAogICAgIEV4cG9zZWQ9V2luZG93
LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlv
bnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucy5pZGwKaW5kZXggYTllMTliNjk1ZTA2ZjIzMTM4OGU3MzViMmI2MDUyOTc5ZjExZjkw
NS4uODcxYWVlMDAwZjhkNTBlYzRjMzA0NTcxOTdmNWIyYjQyZjA0ZDA3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucy5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9B
VURJTywKLSAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRS
dW50aW1lPUF1ZGlvV29ya2xldCwKIF0gZGljdGlvbmFyeSBBdWRpb1dvcmtsZXROb2RlT3B0aW9u
cyA6IEF1ZGlvTm9kZU9wdGlvbnMgewogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHMg
PSAxOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzID0gMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MzAwYjA5YjZjZDgxYzc2YTg3YmEyMDk5MTFiNTY5ZTE3ZjI3ZDBkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xl
dFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVk
Q29weSgpLAorICAgICAgICBqc1J1bnRpbWVGbGFncworICAgIH07Cit9CisKK0F1ZGlvV29ya2xl
dFRocmVhZDo6QXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQorICAgIDogbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMuaXNvbGF0ZWRDb3B5KCkpCit7
Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpzdGFydCgpCit7CisgICAgYXV0byBsb2Nr
ID0gaG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZFdvcmtsZXRHbG9iYWxTY29wZUxvY2spOwor
CisgICAgUmVmPFRocmVhZD4gdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIldlYkNvcmU6IEF1ZGlv
V29ya2xldCIsIFt0aGlzXSB7CisgICAgICAgIHdvcmtsZXRUaHJlYWQoKTsKKyAgICB9LCBUaHJl
YWRUeXBlOjpBdWRpbyk7CisgICAgLy8gRm9yY2UgdGhlIFRocmVhZCBvYmplY3QgdG8gYmUgaW5p
dGlhbGl6ZWQgZnVsbHkgYmVmb3JlIHN0b3JpbmcgaXQgdG8gbV90aHJlYWQgKGFuZCBiZWNvbWlu
ZyB2aXNpYmxlIHRvIG90aGVyIHRocmVhZHMpLgorICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7
CisgICAgbV90aHJlYWQgPSBXVEZNb3ZlKHRocmVhZCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0
VGhyZWFkOjp3b3JrbGV0VGhyZWFkKCkKK3sKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKKworI2lmIFVTRShHTElCKQorICAgIEdSZWZQdHI8R01haW5Db250ZXh0PiBt
YWluQ29udGV4dCA9IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7CisgICAgZ19tYWlu
X2NvbnRleHRfcHVzaF90aHJlYWRfZGVmYXVsdChtYWluQ29udGV4dC5nZXQoKSk7CisjZW5kaWYK
KworICAgIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyOworICAgIHsK
KyAgICAgICAgYXV0byBsb2NrID0gaG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZFdvcmtsZXRH
bG9iYWxTY29wZUxvY2spOworICAgICAgICBtX3dvcmtsZXRHbG9iYWxTY29wZSA9IEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlOjpjcmVhdGUoKnRoaXMsIG1fcGFyYW1ldGVycyk7CisKKyAgICAgICAg
c2NyaXB0Q29udHJvbGxlciA9IG1fd29ya2xldEdsb2JhbFNjb3BlLT5zY3JpcHQoKTsKKworICAg
ICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIHdv
cmtlciB3YXMgdGVybWluYXRlZCBiZWZvcmUgdGhlIHRocmVhZCBoYWQgYSBjaGFuY2UgdG8gcnVu
LiBTaW5jZSB0aGUgY29udGV4dCBkaWRuJ3QgZXhpc3QgeWV0LAorICAgICAgICAgICAgLy8gZm9y
YmlkRXhlY3V0aW9uKCkgY291bGRuJ3QgYmUgY2FsbGVkIGZyb20gc3RvcCgpLgorICAgICAgICAg
ICAgc2NyaXB0Q29udHJvbGxlci0+c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOworICAg
ICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBydW5FdmVudExvb3AoKTsKKworI2lmIFVTRShHTElCKQorICAgIGdfbWFp
bl9jb250ZXh0X3BvcF90aHJlYWRfZGVmYXVsdChtYWluQ29udGV4dC5nZXQoKSk7CisjZW5kaWYK
KworICAgIFJlZlB0cjxUaHJlYWQ+IHByb3RlY3RvciA9IG1fdGhyZWFkOworCisgICAgQVNTRVJU
KG1fd29ya2xldEdsb2JhbFNjb3BlLT5oYXNPbmVSZWYoKSk7CisKKyAgICBSZWZQdHI8QXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGU+IHdvcmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlOworICAgIHsKKyAg
ICAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgd2Ug
ZG9uJ3QgY2hhbmdlIG1fd29ya2VyR2xvYmFsU2NvcGUKKyAgICAgICAgLy8gd2hpbGUgV29ya2Vy
VGhyZWFkOjpzdG9wIGlzIGFjY2Vzc2luZyBpdC4KKyAgICAgICAgYXV0byBsb2NrID0gaG9sZExv
Y2sobV90aHJlYWRDcmVhdGlvbkFuZFdvcmtsZXRHbG9iYWxTY29wZUxvY2spOworCisgICAgICAg
IC8vIERlbGF5IHRoZSBkZXN0cnVjdGlvbiBvZiB0aGUgV29ya2VyR2xvYmFsU2NvcGUgY29udGV4
dCB1bnRpbCBhZnRlciB3ZSd2ZSB1bmxvY2tlZCB0aGUKKyAgICAgICAgLy8gbV90aHJlYWRDcmVh
dGlvbkFuZFdvcmtlckdsb2JhbFNjb3BlTXV0ZXguIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgZGVz
dHJ1Y3RpbmcgdGhlCisgICAgICAgIC8vIGNvbnRleHQgd2lsbCB0cmlnZ2VyIHRoZSBtYWluIHRo
cmVhZCB0byByYWNlIGFnYWluc3QgdXMgdG8gZGVsZXRlIHRoZSBXb3JrZXJUaHJlYWQKKyAgICAg
ICAgLy8gb2JqZWN0LCBhbmQgdGhlIFdvcmtlclRocmVhZCBvYmplY3Qgb3ducyB0aGUgbXV0ZXgg
d2UgbmVlZCB0byB1bmxvY2sgYWZ0ZXIgdGhpcy4KKyAgICAgICAgd29ya2xldEdsb2JhbFNjb3Bl
VG9EZWxldGUgPSBXVEZNb3ZlKG1fd29ya2xldEdsb2JhbFNjb3BlKTsKKyAgICB9CisKKyAgICAv
LyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdp
bGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgorICAgIC8vIFdlIGNhbm5vdCBsZXQg
YW55IG9iamVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRo
cmVhZCB3aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgorICAgIHdvcmtsZXRH
bG9iYWxTY29wZVRvRGVsZXRlID0gbnVsbHB0cjsKKworICAgIC8vIFNlbmQgdGhlIGxhc3QgV29y
a2VyVGhyZWFkIFJlZiB0byBiZSBEZXJlZidlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsg
fSk7CisKKyAgICAvLyBUaGUgdGhyZWFkIG9iamVjdCBtYXkgYmUgYWxyZWFkeSBkZXN0cm95ZWQg
ZnJvbSBub3RpZmljYXRpb24gbm93LCBkb24ndCB0cnkgdG8gYWNjZXNzICJ0aGlzIi4KKyAgICBw
cm90ZWN0b3ItPmRldGFjaCgpOworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6cnVuRXZl
bnRMb29wKCkKK3sKKyAgICAvLyBEb2VzIG5vdCByZXR1cm4gdW50aWwgdGVybWluYXRlZC4KKyAg
ICBtX3J1bkxvb3AucnVuKG1fd29ya2xldEdsb2JhbFNjb3BlLmdldCgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMyOGRiZTI3MzEwMzFiY2E1Mjc4ODAxMzQ2YzVhZGNmNGNlYTBiZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dFRocmVhZC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQor
I2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOworCitzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnMg
eworcHVibGljOgorICAgIFVSTCB3aW5kb3dVUkw7CisgICAgSlNDOjpSdW50aW1lRmxhZ3MganNS
dW50aW1lRmxhZ3M7CisKKyAgICBXb3JrbGV0UGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25z
dDsKK307CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxBdWRpb1dvcmtsZXRUaHJlYWQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1
ZGlvV29ya2xldFRocmVhZD4gY3JlYXRlKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0VGhy
ZWFkKHBhcmFtZXRlcnMpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXb3Jr
ZXJSdW5Mb29wJiBydW5Mb29wKCkgeyByZXR1cm4gbV9ydW5Mb29wOyB9CisgICAgVGhyZWFkKiB0
aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IEF1ZGlvV29ya2xldFRocmVhZChjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYpOwor
CisgICAgdm9pZCBydW5FdmVudExvb3AoKTsKKyAgICB2b2lkIHdvcmtsZXRUaHJlYWQoKTsKKwor
ICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkOworICAgIFdvcmtlclJ1bkxvb3AgbV9ydW5Mb29w
OworICAgIFdvcmtsZXRQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKKyAgICBSZWZQdHI8QXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGU+IG1fd29ya2xldEdsb2JhbFNjb3BlOworICAgIExvY2sgbV90aHJl
YWRDcmVhdGlvbkFuZFdvcmtsZXRHbG9iYWxTY29wZUxvY2s7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggMDJi
NWZhMDRmZWRkOTNlZTljM2EyZDk1MzAzMDdkMjEwOTQ0ZjNlNi4uY2RjMDNjZmFjNGQ4NzdhNzBl
YzUzZWFiOGJhOTNjYzM3NTYwODdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgQmFz
ZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IEF1ZGlvQ29udGV4dE9wdGlvbnMKICAgICAsIG1fbG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgotICAg
ICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkpCisgICAgLCBtX3dvcmtsZXQoQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoZG9jdW1lbnQpKQogICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZv
cm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKSwgKnRoaXMpKQogewogICAgIC8vIEFjY29yZGluZyB0byBzcGVjIEF1ZGlvQ29u
dGV4dCBtdXN0IGRpZSBvbmx5IGFmdGVyIHBhZ2UgbmF2aWdhdGUuCkBAIC0xNjEsNyArMTYxLDcg
QEAgQmFzZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQs
IHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMKICAgICAsIG1fbG9nZ2VyKGRvY3VtZW50LmxvZ2dl
cigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNlbmRp
ZgotICAgICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkpCisgICAgLCBtX3dvcmts
ZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoZG9jdW1lbnQpKQogICAgICwgbV9pc09mZmxpbmVDb250
ZXh0KHRydWUpCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3Jl
YXRlKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykp
CiAgICAgLCBtX3JlbmRlclRhcmdldChXVEZNb3ZlKHJlbmRlclRhcmdldCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAppbmRl
eCBkZjkzNWE0MDhmNGNiMDQzYTdkODk3ZGI2MzczYjQxNDc3ZDhkNzQ4Li42YzU1ZTZkZTFkYmI0
OGI4ZDA1MmIwMzM3Y2IwOTE0ZDk2MDUwOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTQyLDcgKzQyLDcgQEAK
ICAgICAvLyBBbGwgcGFubmluZyBpcyByZWxhdGl2ZSB0byB0aGlzIGxpc3RlbmVyLgogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0xpc3RlbmVyIGxpc3RlbmVyOwogCi0gICAgW1NhbWVPYmpl
Y3QsIFNlY3VyZUNvbnRleHQsIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0XSByZWFkb25s
eSBhdHRyaWJ1dGUgQXVkaW9Xb3JrbGV0IGF1ZGlvV29ya2xldDsKKyAgICBbU2FtZU9iamVjdCwg
U2VjdXJlQ29udGV4dCwgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3JrbGV0OwogCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEF1ZGlvQ29udGV4dFN0YXRlIHN0YXRlOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25zdGF0ZWNoYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA3NTFkZTkx
OGNlMWRjMzZhMWM3OWU5NTAzYzkyOGY0Zjg5ZjA5NmJjLi5hZTM0ZmZiYTIzY2RhMTZjZDlhYTc0
NjBlN2E4NzJlNzk4MjEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0z
MCwxMCArMzAsMTMgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1
ZGlvRGVzdGluYXRpb24uaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxv
b3AuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAKQEAgLTk5LDE4ICsxMDIsMzAgQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCkKICAg
ICAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAgICAgICAgICAgIG1fZGVzdGlu
YXRpb24tPnN0b3AoKTsKICAgICAgICAgICAgIGNyZWF0ZURlc3RpbmF0aW9uKCk7Ci0gICAgICAg
ICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkpOwogICAgICAgICB9CiAgICAg
fQogfQogCitGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IERlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZTo6ZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkKK3sKKyAgICBp
ZiAoYXV0byogd29ya2xldFByb3h5ID0gY29udGV4dCgpLmF1ZGlvV29ya2xldCgpLnByb3h5KCkp
IHsKKyAgICAgICAgcmV0dXJuIFt3b3JrbGV0UHJveHkgPSBtYWtlUmVmKCp3b3JrbGV0UHJveHkp
XShGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsKKyAgICAgICAgICAgIHdvcmtsZXRQcm94
eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW2Z1bmN0aW9uID0gV1RGTW92
ZShmdW5jdGlvbildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVs
dE1vZGUoKSk7CisgICAgICAgIH07CisgICAgfQorICAgIHJldHVybiB7IH07Cit9CisKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmco
KQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmICghaXNJbml0aWFsaXpl
ZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAot
ICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoZGlz
cGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkpOwogICAgIHJldHVybiB7IH07CiB9CiAKQEAg
LTExOCw3ICsxMzMsNyBAQCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVzdW1l
KEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6
ZWQoKSk7CiAgICAgaWYgKGlzSW5pdGlhbGl6ZWQoKSkKLSAgICAgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZEZ1bmN0aW9uKCkpOwogICAgIGNvbnRleHQoKS5wb3N0VGFzayhXVEZNb3ZlKGZ1bmN0aW9u
KSk7CiB9CiAKQEAgLTE2Myw3ICsxNzgsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBEZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBjaGFubmVsQwogICAg
ICAgICAvLyBSZS1jcmVhdGUgZGVzdGluYXRpb24uCiAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0
b3AoKTsKICAgICAgICAgY3JlYXRlRGVzdGluYXRpb24oKTsKLSAgICAgICAgbV9kZXN0aW5hdGlv
bi0+c3RhcnQoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoZGlzcGF0Y2hUb1JlbmRl
clRocmVhZEZ1bmN0aW9uKCkpOwogICAgIH0KIAogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUuaAppbmRleCBlZGUxNTMzYzE2NDgyOWNmMWUyM2JhOTNjMjlhODg2MzQyMDNl
NGQyLi43ZDY1ZTI1ZWI1NTQxYTk3NzZkNTAwNmUxNzJkMjAwNWI0M2RlOGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHJpdmF0ZToKICAgICBleHBsaWNp
dCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIE9wdGlvbmFs
PGZsb2F0Pik7CiAgICAgdm9pZCBjcmVhdGVEZXN0aW5hdGlvbigpOwogCisgICAgRnVuY3Rpb248
dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24o
KTsKKwogICAgIHZvaWQgaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIHZvaWQgdW5pbml0aWFsaXpl
KCkgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVk
KSBmaW5hbDsKQEAgLTYxLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtYXhDaGFu
bmVsQ291bnQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzUGxheWluZygpIGZpbmFsOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAg
UmVmUHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CiAgICAgU3RyaW5nIG1faW5w
dXREZXZpY2VJZDsKICAgICB1bnNpZ25lZCBtX251bWJlck9mSW5wdXRDaGFubmVscyB7IDAgfTsK
ICAgICBmbG9hdCBtX3NhbXBsZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAKaW5kZXggZmFhMzM2NTJlZGIzNzYzYjM5YzFmNmJiNDdmNmJiMjRmYTAzYzQyMC4uNTNiNTU0
MTNlOTI2MWI3NzBlZjdhYzNiYWFkNmQ4NmUwYzgyOWVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcApAQCAtMzEsNyArMzEsMTAgQEAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2lu
Y2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCisjaW5j
bHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuaCIKICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJS
dW5Mb29wLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTk2LDkgKzk5LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRl
cmluZygpCiAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gdHJ1ZTsKICAgICBhdXRvIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKIAotICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY2FsbCBs
YXp5SW5pdGlhbGl6ZSBoZXJlPwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgbGlt
aXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBhdWRpby4KLSAg
ICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRlcmVyIiwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSgpIG11dGFibGUgewor
ICAgIGF1dG8gb2ZmVGhyZWFkUmVuZGVyaW5nID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIHJlc3VsdCA9IG9m
ZmxpbmVSZW5kZXIoKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcmVzdWx0LCBj
dXJyZW50U2FtcGxlRnJhbWUgPSBtX2N1cnJlbnRTYW1wbGVGcmFtZSwgcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsKICAgICAgICAgICAgIG1fc3RhcnRlZFJlbmRlcmlu
ZyA9IGZhbHNlOwpAQCAtMTE0LDcgKzExNSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgfSwgVGhyZWFkVHlwZTo6QXVk
aW8pOworICAgIH07CisKKyAgICBpZiAoYXV0byogd29ya2xldFByb3h5ID0gY29udGV4dCgpLmF1
ZGlvV29ya2xldCgpLnByb3h5KCkpIHsKKyAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zv
ck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShbb2ZmVGhyZWFkUmVuZGVyaW5nID0gV1RGTW92ZShv
ZmZUaHJlYWRSZW5kZXJpbmcpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBvZmZUaHJlYWRSZW5kZXJpbmcoKTsKKyAgICAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2Ug
Y3JlYXRlIGZvciBvZmZsaW5lIGF1ZGlvLgorICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpj
cmVhdGUoIm9mZmxpbmUgcmVuZGVyZXIiLCBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyksIFRo
cmVhZFR5cGU6OkF1ZGlvKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDk1Y2MxMDg1NWQ4YmFmZWQ3YTQ1M2M0YmU5ZjRkOTJkZTI0NTM3YmIuLmM3ZWNmZGQxNTVjNTI4
MGQ1ODU0YmZiNTJiZWJlYTAyODRhZGI3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDUsNyArMjA1
LDEwIEBAIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuY3BwCiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5j
cHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCitNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcAogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJl
YWQuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCiBNb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVy
Tm9kZS5jcHAKQEAgLTI1NzksNiArMjU4Miw3IEBAIHdvcmtsZXRzL1BhaW50V29ya2xldEdsb2Jh
bFNjb3BlLmNwcAogd29ya2xldHMvV29ya2xldC5jcHAKIHdvcmtsZXRzL1dvcmtsZXRDb25zb2xl
Q2xpZW50LmNwcAogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAord29ya2xldHMvV29y
a2xldFBlbmRpbmdUYXNrcy5jcHAKIHdvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNw
cAogeG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKIHhtbC9ET01QYXJzZXIuY3BwCkBAIC0y
NjgwLDYgKzI2ODQsNyBAQCBKU0F1ZGlvVGltZXN0YW1wLmNwcAogSlNBdWRpb1RyYWNrLmNwcAog
SlNBdWRpb1RyYWNrTGlzdC5jcHAKIEpTQXVkaW9Xb3JrbGV0LmNwcAorSlNBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKIEpTQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKIEpTQXVkaW9Xb3JrbGV0Tm9k
ZU9wdGlvbnMuY3BwCiBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmMzUyZGIzYzIxMGNlYWNlNTI5OTE4NjhlY2IwY2I3MzYzNWNmZWQwLi5iMGMyOTcwZjVh
Y2RmOWUyMzMwZWJmOGQ3YTk0MDEyZDVlNjAzMzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDUxLDYgKzI0NTEsMTAgQEAK
IAkJODMzQjlFMzIxRjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUy
RjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAqLzsgfTsK
IAkJODMzQjlFMzQxRjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUVudHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUyQTFGNTA4RDgw
MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuaCAqLzsgfTsKIAkJODMzQjlFMzYxRjUwOEQ4
NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkMxRjUwOEQ4MDAwRTBFNDI4IC8qIEpT
RmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4MzNCRDgxNzI1MjRENEYyMDA2RTcyQjMg
LyogV29ya2xldFBlbmRpbmdUYXNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5n
VGFza3MuaCAqLzsgfTsKKwkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3MkIzIC8qIFdvcmtsZXRHbG9i
YWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHku
aCAqLzsgfTsKKwkJODMzQkQ4MUQyNTI0RDUzMDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzNCRDgxOTI1MjRENTFCMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsg
fTsKKwkJODMzQkQ4MUUyNTI0RDUzNDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNC
RDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLzsg
fTsKIAkJODMzRDFDNzYyNEQ4RDU0RjAwRTgxM0RGIC8qIFdlYktpdEF1ZGlvQnVmZmVyU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMz
RDFDNzMyNEQ4RDUzMzAwRTgxM0RGIC8qIFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oICov
OyB9OwogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdG
QzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQzRDk4NDI0RDBERUU5
MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDNEOTgxMjREMERFQTkwMDlBQkQ0OSAvKiBXZWJL
aXRPc2NpbGxhdG9yTm9kZS5oICovOyB9OwpAQCAtMjUwOCw2ICsyNTEyLDcgQEAKIAkJODM4Rjg2
REIxRjUwOUU3QjAwRThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhGODZENzFGNTA5RTZDMDBF
OENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCAqLzsgfTsKIAkJODM5OTQ3MEMxRjUw
QjYzRTAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTk0NzA3MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxl
U3lzdGVtLmggKi87IH07CiAJCTgzOTk0NzEwMUY1MEI2RkEwMEU5RDg2QiAvKiBKU0RPTUZpbGVT
eXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
OTk0NzBFMUY1MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKKwkJODM5
QTA5NUQyNTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEwOTVC
MjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi87
IH07CiAJCTgzOUEyRjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMkMxRTIw
NEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8q
IEhUTUxXQlJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsg
fTsKIAkJODM5QkU2RDUyNEY1ODc2MjAwNERGNTBGIC8qIElJUkZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QkU2RDIyNEY1ODc1NTAwNERG
NTBGIC8qIElJUkZpbHRlci5oICovOyB9OwpAQCAtMjUzNSw2ICsyNTQwLDcgQEAKIAkJODNEMzVB
RUMxQzcxODdGQTAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQw
MEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYy
MUM3MThEOTAwMEY3MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQw
MEY3MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNENTEx
RjYyNTBDMUNCRjAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1
c2hQdWxsRklGTy5oICovOyB9OworCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZS5oICovOyB9OwogCQk4M0RCOUUwRjI0REExOTQ5MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAqLzsgfTsK
IAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBFMjREQTE4
QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggKi87IH07CiAJCTgzRTM1OUEyMUJC
MTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFMzU5QTAxQkIxMDMxRDAwMkNFQjk4IC8qIEpT
SFRNTFRpbWVFbGVtZW50LmggKi87IH07CkBAIC0yNTQ0LDYgKzI1NTAsNyBAQAogCQk4M0ZCMzM3
MTFGNTA4QTU0MDA5ODZFNTQgLyogRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2RDFGNTA4QTRFMDA5
ODZFNTQgLyogRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzRkIzMzczMUY1
MDhBNTgwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxl
U3lzdGVtRW50cnkuaCAqLzsgfTsKIAkJODNGQjMzNzUxRjUwOEE1QjAwOTg2RTU0IC8qIEZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRkIzMzZDMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5Lmgg
Ki87IH07CisJCTgzRkM5OTRCMjUyNTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkM5OTQ5
MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLzsgfTsKIAkJODNGRTdD
QTcxREE5RjFBNzAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlF
dmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0EzMURBOUYx
NjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU5MDI3MUUzMDdDMzAwMDNFOTE5OSAvKiBQ
ZXJmb3JtYW5jZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzRkU5MDI2MUUzMDdDMUMwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3Iu
aCAqLzsgfTsKQEAgLTEwNTc4LDYgKzEwNTg1LDEzIEBACiAJCTgzM0I5RTJEMUY1MDhEODAwMEUw
RTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODMzQjlFMkUxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUVu
dHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVN5c3Rl
bUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzQjlFMkYxRjUwOEQ4
MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODEzMjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0
UGVuZGluZ1Rhc2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRQ
ZW5kaW5nVGFza3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTUyNTI0
RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBXb3JrbGV0R2xv
YmFsU2NvcGVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrbGV0
R2xvYmFsU2NvcGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgx
OTI1MjRENTFCMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xldE1lc3Nh
Z2luZ1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFDMjUyNEQ1
MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0NGNzBGMjBEQjNGNUYwMDE0MUJDQyAv
KiBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzRDFDNzMyNEQ4RDUzMzAwRTgxM0RGIC8qIFdlYktpdEF1
ZGlvQnVmZmVyU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzRDFDNzUyNEQ4RDUz
MzAwRTgxM0RGIC8qIFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwNzA0LDYgKzEwNzE4LDcgQEAKIAkJODM5OTQ3MDkxRjUwQjYzODAwRTlEODZCIC8qIERPTUZp
bGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NRmls
ZVN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTk0NzBEMUY1MEI2
RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzlBMkYyQjFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xTdGF0ZVRy
YWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBMkYyQzFFMjA0QTZE
MDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR0xTdGF0ZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxXQlJFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzUyLDYgKzEwNzY3LDcgQEAKIAkJODNEMzVBRjAx
QzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNENTExRjMyNTBDMUNBODAwMkVEQzUxIC8q
IFB1c2hQdWxsRklGTy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
dXNoUHVsbEZJRk8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1MTFGNTI1
MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFB1c2hQdWxsRklGTy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlFMEEyNERBMThCNDAwMzdC
NDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVhZEZpbHRlclR5cGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyog
QmlxdWFkRmlsdGVyVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaXF1YWRGaWx0ZXJUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5RTBEMjREQTE4QjUwMDM3QjQ2OCAvKiBC
aXF1YWRGaWx0ZXJPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCaXF1YWRGaWx0ZXJPcHRpb25zLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzkxLDYgKzEwODA3LDkgQEAKIAkJODNGQjMz
NkQxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkUxRjUwOEE0RTAwOTg2RTU0IC8qIEZp
bGVTeXN0ZW1FbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
aWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2
RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4M0ZDOTk0NzI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRo
cmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRUaHJlYWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8qIEF1ZGlvV29ya2xl
dFRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRUaHJlYWQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyog
RXZlbnRNb2RpZmllckluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZl
bnRNb2RpZmllckluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTQx
REE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVJRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
RkU3Q0E1MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gVUlFdmVudEluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc1NDIsNiArMTc1NjEsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
IAkJCQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywKKwkJCQk2RkUxOTgxMzIx
NzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovLAorCQkJCTZGRTE5
ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovLAogCQkJCTZG
N0NBM0M5MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8s
CiAJCQkJNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0
LmggKi8sCiAJCQkJNkYzNUVGQUYyMTg3Q0JENTAwNDRFMEY0IC8qIElubGluZUZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwICovLApAQCAtMTc1NTQsOCArMTc1NzUsNiBAQAogCQkJCTZGMENE
Njk0MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggKi8sCiAJCQkJNkY2OUE3OTkyNEQ2
RkFCODAwRTZCODVEIC8qIElubGluZUxpbmVCb3guY3BwICovLAogCQkJCTZGQjI0MDAzMjNERkYx
MjcwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8sCi0JCQkJNkZFMTk4MTMyMTc4Mzk3QjAw
NDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKLQkJCQk2RkUxOTgxNTIxNzgz
OTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjI1QjIwMDIy
MEE4NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAogCQkJCTZGMjZFQjQ2
MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAogCQkJCTZGOTE0MjBG
MjUxNTIxMzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCAqLywKQEAgLTE4NzIwLDYg
KzE4NzM5LDggQEAKIAkJCQkyRTQzNDYzRDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwICovLAogCQkJCTJFNDM0NjNFMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJN
ZXNzYWdpbmdQcm94eS5oICovLAogCQkJCTJFNDM0NjNGMEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXJPYmplY3RQcm94eS5oICovLAorCQkJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovLAorCQkJCTgzOUEwOTVCMjUyNEYzNzYwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi8sCiAJCQkJNDE2RTI5QTUx
MDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2
NDAwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuY3BwICovLAogCQkJCTJFNDM0NjQx
MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggKi8sCkBAIC0xOTczOCw4ICsxOTc1
OSwxMSBAQAogCQkJCTRCREVBMzI2MjE3RkUyRkEwMDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwICovLAogCQkJCTRCREVBMzI0MjE3RkUyRTQwMDUyREZDRCAvKiBXb3JrbGV0R2xvYmFs
U2NvcGUuaCAqLywKIAkJCQk0QkRFQTMyQTIxODAxMDcyMDA1MkRGQ0QgLyogV29ya2xldEdsb2Jh
bFNjb3BlLmlkbCAqLywKKwkJCQk4MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEds
b2JhbFNjb3BlUHJveHkuaCAqLywKIAkJCQk4M0FDRDAxMDI1MjI5RTA0MDAwRDEyNEUgLyogV29y
a2xldE9wdGlvbnMuaCAqLywKIAkJCQk4M0FDRDAxMjI1MjI5RTA0MDAwRDEyNEUgLyogV29ya2xl
dE9wdGlvbnMuaWRsICovLAorCQkJCTgzM0JEODE1MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0
UGVuZGluZ1Rhc2tzLmNwcCAqLywKKwkJCQk4MzNCRDgxMzI1MjRENEUyMDA2RTcyQjMgLyogV29y
a2xldFBlbmRpbmdUYXNrcy5oICovLAogCQkJCTRCREVBMzI5MjE4MDA0MEMwMDUyREZDRCAvKiBX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJNEJERUEzMjcyMTgwMDNGNzAwNTJE
RkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi8sCiAJCQkpOwpAQCAtMjk4NTgsMTEg
KzI5ODgyLDE4IEBACiAJCQkJODNCOTg3MDYyNTIyNUYwRTAwQTkzOUYxIC8qIEF1ZGlvV29ya2xl
dC5jcHAgKi8sCiAJCQkJODNCOTg3MDEyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldC5o
ICovLAogCQkJCTgzQjk4NkZEMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaWRsICov
LAorCQkJCTgzM0JEODFBMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5jcHAgKi8sCisJCQkJODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmggKi8sCisJCQkJODNGQzk5NDcyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlLmlkbCAqLywKKwkJCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcyQjMgLyog
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwICovLAorCQkJCTgzM0JEODFCMjUyNEQ1MUMw
MDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovLAogCQkJCTgzQjk4NzAz
MjUyMjVGMEMwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlLmNwcCAqLywKIAkJCQk4M0I5ODcw
NzI1MjI1RjBFMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZS5oICovLAogCQkJCTgzQjk4NzA0
MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2RlLmlkbCAqLywKIAkJCQk4M0I5ODcw
MDI1MjI1RjBCMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCAqLywKIAkJCQk4
M0I5ODcwNTI1MjI1RjBEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaWRsICov
LAorCQkJCTgzRkM5OTRBMjUyNTU3RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuY3Bw
ICovLAorCQkJCTgzRkM5OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQu
aCAqLywKIAkJCQk4MzE5OEZCQjI0QTE2MEMxMDA0MjBCMDUgLyogQmFzZUF1ZGlvQ29udGV4dC5j
cHAgKi8sCiAJCQkJODMxOThGQkUyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQu
aCAqLywKIAkJCQk4MzE5OEZCRDI0QTE2MEMxMDA0MjBCMDUgLyogQmFzZUF1ZGlvQ29udGV4dC5p
ZGwgKi8sCkBAIC0zMDQ2Nyw4ICszMDQ5OCwxMSBAQAogCQkJCTA3RDZBNEY4MUJGMjMwN0QwMDE3
NDE0NiAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDMxNjA4QjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9VdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQjk4NzBCMjUyMjVGN0QwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzM0JEODFEMjUyNEQ1MzAwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUUyNTI0RDUzNDAwNkU3MkIz
IC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5
ODcwOTI1MjI1RjcyMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0Tm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODNCOTg3MEEyNTIyNUY3NjAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGVPcHRpb25z
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0ZDOTk0QjI1MjU1N0VBMDAxNzc2MTggLyogQXVkaW9X
b3JrbGV0VGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RUU2ODQ2MTEyRDI2RTM4MDBFNzk0
MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEY3
MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxMjQ3NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc3Miw2ICszMTgwNiw3IEBACiAJCQkJQ0Qw
NjNGODMxRTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4Q0ZGNUU1MEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVCb3guaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
Q29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1N0NCNTJFMTgyQTNFRkMwMDc5
QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFMzBB
MTU1QTA1MDAwQTQyMzQgLyogSW5saW5lRmxvd0JveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY3
Q0EzQ0EyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxNzgwLDcgKzMxODE1LDYgQEAKIAkJCQlCQ0U3ODkxNjExMjBENjA4MDA2
MEVDRTUgLyogSW5saW5lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMENENjk1MjI5
RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkIyNDAw
NTIzREZGMTI4MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGOTE0MjExMjUxNTIxMzgwMDRFNEZFQSAvKiBJbmxp
bmVMaW5lR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQzNGOTQ3MjUxNjc1NjcwMEE0
OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NTk1LDYgKzM0NjI5
LDggQEAKIAkJCQkxQUJDNzEwOTE3MEU1RTFCMDBGOUE5RDYgLyogV29ya2VyTmF2aWdhdG9yU3Rv
cmFnZVF1b3RhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNCMDUyNTFGQjUxRjNBMDAwODlCOTcg
LyogV29ya2VyTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MTBGNTQ2
QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
RDZBQUU2MjUyNEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODM5QTA5NUQyNTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkUyOUE2MTAyRkE5
NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkU0MzQ2NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1QjgxQ0NGMUZBQTQ0REUwMDM3RDFFNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMzQ2MDksNyArMzQ2NDUsOSBAQAogCQkJCTRCREVBMzIwMjE3RUM1
NUYwMDUyREZDRCAvKiBXb3JrbGV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QjdGOUM1MjIxODNC
NUU1MDAxQ0VCQTAgLyogV29ya2xldENvbnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTRCREVBMzI1MjE3RkUyRTQwMDUyREZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzM0JEODE4MjUyNEQ0RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNBQ0QwMTMyNTIyOUUxMDAwMEQxMjRFIC8q
IFdvcmtsZXRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgxNzI1MjRENEYyMDA2
RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEz
MjgyMTgwMDNGNzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzMwOUUyNDA5OUU2NDkyMDA1NkU1ODEgLyogV3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYw
NTMgLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNw
cAppbmRleCBiMTRiODE1NDJkYjg4OWVjNmQyNTliYzViNzBlZjJhNTA5OWM5NmQxLi4zMjNkZWU3
OGQ4YmJlYzllY2VlMTU2YjkzM2VhZDA4NjE0MTk3YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTI3
LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9i
YWxTY29wZUJhc2UuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVk
ZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3RUYXNrLmgi
CiAjaW5jbHVkZSAiSlNET01HdWFyZGVkT2JqZWN0LmgiCkBAIC0xNTEsNCArMTQ5LDMgQEAgSlNX
b3JrbGV0R2xvYmFsU2NvcGUqIHRvSlNXb3JrbGV0R2xvYmFsU2NvcGUoVk0mIHZtLCBKU1ZhbHVl
IHZhbHVlKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmgKaW5k
ZXggOGZlZjkyMDFmZWRjMzYxZTkyNWNjODA2MmYyY2YyNmRhMzFjZWM2MC4uYjhhMTdlYzRlN2Uy
ZmFjY2JlODQ2NzRjYTAxNGQxMzViZTcwNTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmgKQEAgLTI2LDggKzI2LDYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2lu
Y2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAj
aW5jbHVkZSAiSlNFdmVudFRhcmdldC5oIgpAQCAtODgsNSArODYsMyBAQCBpbmxpbmUgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgV29y
a2xldEdsb2JhbAogSlNXb3JrbGV0R2xvYmFsU2NvcGUqIHRvSlNXb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYyYjBkNmQ1NGE0ZjAwMDJkZWU0
YmQyZGZjN2VjNmVkMTM3ZDg0NjguLmIzYThkNWIxM2M0NTExY2Y3ODQyNTc1OWQ2MDUxNDgxMTE0
OTBjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KEF1ZGlvTGlzdGVuZXIpIFwKICAgICBtYWNybyhBdWRpb1BhcmFtTWFwKSBcCiAgICAgbWFjcm8o
QXVkaW9Xb3JrbGV0KSBcCisgICAgbWFjcm8oQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAg
ICBtYWNybyhBdWRpb1dvcmtsZXROb2RlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9u
c2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0Ns
aWVudERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50
RGF0YS5jcHAKaW5kZXggMzhkZjY3NzUyZTkwYTZhMmUwMTc0Y2ZhZmJjNGY4NzFlYTgxYzE0YS4u
MDc2NjA4MzgwNzRlMjZlYmY0MzFkNTFhOWFmMzEwMTljNTlhMDc2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkRPTUdDT3V0cHV0Q29uc3RyYWludC5oIgogI2luY2x1ZGUg
IkRPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJ1aWx0aW5Db25z
dHJ1Y3RvckJhc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNjgsOSArNjksMTIg
QEAgSlNWTUNsaWVudERhdGE6OkpTVk1DbGllbnREYXRhKFZNJiB2bSkKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KCkpCiAjZW5kaWYKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFs
U2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4o
KSkKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICAsIG1faGVhcENlbGxUeXBlRm9y
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpT
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KCkpCi0gICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTV29y
a2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNXb3JrbGV0R2xv
YmFsU2NvcGU+KCkpCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgICwgbV9oZWFw
Q2VsbFR5cGVGb3JKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBl
OjpjcmVhdGU8SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKICNlbmRpZgogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU0lEQlNlcmlhbGl6
YXRpb25HbG9iYWxPYmplY3QoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0lEQlNlcmlh
bGl6YXRpb25HbG9iYWxPYmplY3Q+KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggODNiODIzNGMzMzVkZWQxNDUwZDE4MTNmZTg0
Mjk3YTk3NTgzODk1MS4uYjg0NDBlODc3MGU0NzI5MWY3ZWUyMDYzMTk5ZWEwNWMzYzRiYjBjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEu
aApAQCAtOTksOSArOTksMTIgQEAgcHVibGljOgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9y
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiAjZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGU7
CiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6
SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZv
ckpTV29ya2xldEdsb2JhbFNjb3BlOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZTsKICNlbmRpZgogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5
cGVGb3JKU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZDBhNTQ3YWM1
NjczOWZkZGUxZTcwZThlYzE5YjJiNDg4NWViNTYwOS4uZTM5MDE4MGY1NzFmOWUxZTM1YmM5MjNi
MWQ3NzFkNGI5NWNlZGE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CkBA
IC00NCw3ICs0NSw3IEBAIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25z
b2xlQ2xpZW50OwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiAKLWNsYXNzIFdvcmtlclNjcmlw
dENvbnRyb2xsZXIgeworY2xhc3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciA6IHB1YmxpYyBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
b3JrZXJTY3JpcHRDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSopOwpAQCAtNjcs
NyArNjgsNyBAQCBwdWJsaWM6CiAgICAgLy8gZm9yYmlkRXhlY3V0aW9uKCkvaXNFeGVjdXRpb25G
b3JiaWRkZW4oKSB0byBndWFyZCBhZ2FpbnN0IHJlZW50cnkgaW50byBKUy4KICAgICAvLyBDYW4g
YmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4KICAgICB2b2lkIHNjaGVkdWxlRXhlY3V0aW9uVGVy
bWluYXRpb24oKTsKLSAgICBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdDsKKyAg
ICBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIENh
bGxlZCBvbiBXb3JrZXIgdGhyZWFkIHdoZW4gSlMgZXhpdHMgd2l0aCB0ZXJtaW5hdGlvbiBleGNl
cHRpb24gY2F1c2VkIGJ5IGZvcmJpZEV4ZWN1dGlvbigpIHJlcXVlc3QsCiAgICAgLy8gb3IgYnkg
V29ya2VyIHRocmVhZCB0ZXJtaW5hdGlvbiBjb2RlIHRvIHByZXZlbnQgZnV0dXJlIGVudHJ5IGlu
dG8gSlMuCkBAIC03OSwxMSArODAsMTEgQEAgcHVibGljOgogCiAgICAgSlNDOjpWTSYgdm0oKSB7
IHJldHVybiAqbV92bTsgfQogICAgIAotICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKTsKLSAg
ICB2b2lkIGFjcXVpcmVIZWFwQWNjZXNzKCk7CisgICAgdm9pZCByZWxlYXNlSGVhcEFjY2Vzcygp
IGZpbmFsOworICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSBmaW5hbDsKIAotICAgIHZvaWQg
YWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjayk7Ci0gICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6
OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICB2b2lkIGFk
ZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uQ2FsbGJhY2spIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24o
SlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CiAK
ICAgICB2b2lkIGF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKICAgICB2b2lkIGRldGFj
aERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMTBmM2U2Njg2NjU0NWE1YTYwYTll
ZTVhOWY4Njc0YWUzYzI4NDkzMi4uNThmZDFhN2EyNmZkZDFkYWM0ZGIyYjcwYjFjNTQ1Mzc1YmNk
NGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTc3NSw3ICs3NzUsNyBAQCBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0
UHJvdG90eXBlCiAKICAgICAjIEZvciB3b3JrZXJzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLgogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPnR5
cGUtPm5hbWUgZXEgIldvcmtlckdsb2JhbFNjb3BlIjsKLSAgICAjIEZvciB3b3JrbGV0cywgdGhl
IGdsb2JhbCBvYmplY3QgaXMgYSBQYWludFdvcmtsZXRHbG9iYWxTY29wZS4KKyAgICAjIEZvciB3
b3JrbGV0cywgdGhlIGdsb2JhbCBvYmplY3QgaXMgYSBQYWludFdvcmtsZXRHbG9iYWxTY29wZSBv
ciBhIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLgogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWUgZXEgIldvcmtsZXRHbG9iYWxTY29wZSI7CiAKICAgICByZXR1cm4gSXNET01H
bG9iYWxPYmplY3QoJGludGVyZmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCmluZGV4IGJlZTBmYzUwNjkxOWZjY2ZkMTc1ZjY5
Y2M1MjNjNTc1NmJjMDhhODguLmY0Yzg0YmM4OGM0MTE0NWRkMTZlZDM4M2Q0ZDM5YzQyY2M1ZDY5
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vz
cy1pZGxzLnBsCkBAIC00Nyw2ICs0Nyw3IEBAIG15ICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZTsKIG15ICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHBh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKK215ICRhdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZTsKIG15ICRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM7CiBteSAkaWRsQXR0cmlidXRl
c0ZpbGU7CkBAIC02OSw2ICs3MCw3IEBAIEdldE9wdGlvbnMoJ2RlZmluZXM9cycgPT4gXCRkZWZp
bmVzLAogICAgICAgICAgICAnc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZT1zJyA9PiBcJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAg
ICAgICAgICd3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3BhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSwKKyAgICAgICAgICAgJ2F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZT1zJyA9PiBcJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSwKICAgICAgICAgICAgJ3Rlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnc3VwcGxlbWVu
dGFsTWFrZWZpbGVEZXBzPXMnID0+IFwkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzLAogICAgICAg
ICAgICAnaWRsQXR0cmlidXRlc0ZpbGU9cycgPT4gXCRpZGxBdHRyaWJ1dGVzRmlsZSwKQEAgLTgz
LDYgKzg1LDcgQEAgZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1kZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0YKIGRpZSgnTXVzdCBzcGVjaWZ5IGFu
IG91dHB1dCBmaWxlIHVzaW5nIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0
IGZpbGUgdXNpbmcgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykg
dW5sZXNzIGRlZmluZWQoJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7
CitkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWF1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkYXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0tdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3Mg
ZGVmaW5lZCgkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgfHwgIWRlZmluZWQoJHRl
c3RHbG9iYWxDb250ZXh0TmFtZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSB0aGUgZmlsZSBsaXN0aW5n
IGFsbCBJRExzIHVzaW5nIC0taWRsRmlsZU5hbWVzTGlzdC4nKSB1bmxlc3MgZGVmaW5lZCgkaWRs
RmlsZU5hbWVzTGlzdCk7CiBkaWUoJ011c3Qgc3BlY2lmeSBJREwgYXR0cmlidXRlcyBmaWxlIHVz
aW5nIC0taWRsQXR0cmlidXRlc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGlkbEF0dHJpYnV0ZXNG
aWxlKTsKQEAgLTk1LDYgKzk4LDcgQEAgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkZGVkaWNhdGVkV29ya2UKICRzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICR3b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCR3b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSk7CiskYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
ID0gQ3lnd2luUGF0aElmTmVlZGVkKCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUpOwogJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyA9IEN5Z3dpblBhdGhJZk5lZWRlZCgk
c3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKSBpZiBkZWZpbmVkKCRzdXBwbGVtZW50YWxNYWtlZmls
ZURlcHMpOwogCiBteSBAaWRsRmlsZU5hbWVzOwpAQCAtMTM1LDYgKzEzOSw3IEBAIG15ICRkZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICRzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSA9ICIiOworbXkgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzQ29kZSA9ICIiOwogbXkgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAi
IjsKIAogbXkgJGlzb1N1YnNwYWNlc0hlYWRlckNvZGUgPSA8PEVORDsKQEAgLTIzNyw2ICsyNDIs
OCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxlTmFtZUhhc2gp
IHsKICAgICAgICAgICAgICAgICAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAu
PSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVx
ICJQYWludFdvcmtsZXQiKSB7CiAgICAgICAgICAgICAgICAgJHBhaW50V29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29kZTsKKyAgICAgICAgICAgIH0gZWxz
aWYgKCRnbG9iYWxDb250ZXh0IGVxICJBdWRpb1dvcmtsZXQiKSB7CisgICAgICAgICAgICAgICAg
JGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSAuPSAkYXR0cmlidXRlQ29k
ZTsKICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9iYWxDb250ZXh0IGVxICR0ZXN0R2xvYmFsQ29u
dGV4dE5hbWUpIHsKICAgICAgICAgICAgICAgICAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSAuPSAkYXR0cmlidXRlQ29kZTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNTQsNiAr
MjYxLDcgQEAgR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZSIsICRkZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY28KIEdlbmVyYXRlUGFydGlhbEludGVyZmFj
ZSgiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiwgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0NvZGUsICRzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
KTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiV29ya2xldEdsb2JhbFNjb3BlIiwgJHdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlKTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgiUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUiLCAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK0dlbmVyYXRlUGFydGlhbEludGVy
ZmFjZSgiQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUiLCAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlLCAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
KTsKIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSgkdGVzdEdsb2JhbENvbnRleHROYW1lLCAkdGVz
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUpIGlmIGRlZmluZWQoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSk7CiAKIGlmICgkaXNvU3Vi
c3BhY2VzSGVhZGVyRmlsZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBkYWUxMTA3ZDMzNGJjOGY0M2RmMmY0Zjdl
ODRhOTgzYzM1ZDY2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKQEAg
LTAsMCArMSwyIEBACitwYXJ0aWFsIGludGVyZmFjZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMjRhMjdiMGE1NThjNDU1YWUxZTMxNWEwY2YxMWJl
MjdjNjQ4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAKQEAg
LTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1
aWxkIHNjcmlwdHMgdGhhdCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgg
YW5kCisgICAgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBj
cmVhdGVkIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwsIGFuZCBw
cmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0ZSBK
U0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNlMjRhMjdiMGE1NThjNDU1YWUxZTMxNWEwY2YxMWJlMjdjNjQ4N2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAg
ICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpTQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAg
ICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzLmNwcCBvbiBldmVyeSBidWlsZC4KKyovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWlu
dFdvcmtsZXQuY3BwCmluZGV4IDEzNmU0ZjE0ZWNmZTVlNGI5ZjljOTUyMDI3NDM5YTRhMzFkNDk2
NDUuLjZhMGUxOTY2NDU0MmU4MTY4MWM3YTY5N2VjYzcxMTViN2E0ZGZjMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiRE9NQ1NTTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29w
ZVByb3h5LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTU2LDExICs1NywxOCBAQCBjb25zdCBjaGFyKiBET01DU1NQYWludFdvcmts
ZXQ6OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4gIkRPTUNTU1BhaW50V29ya2xldCI7CiB9
CiAKLXZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSkKKy8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb3ZlcnJpZGUgYW5k
IHJlbHkgb24gdGhlIHN0YW5kYXJkLWNvbXBsaWFudCBXb3JrbGV0OjphZGRNb2R1bGUoKSBpbnN0
ZWFkLgordm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVS
TCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
IHsKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1
bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvd25sb2FkIHRoZSBzb3VyY2UgZnJvbSB0
aGUgVVJMCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MTEzNgotICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnRy
eUNyZWF0ZShkb2N1bWVudCwgU2NyaXB0U291cmNlQ29kZShtb2R1bGVVUkwpKTsKKyAgICBhdXRv
IG1heWJlQ29udGV4dCA9IFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoKmRvY3Vt
ZW50LCBTY3JpcHRTb3VyY2VDb2RlKG1vZHVsZVVSTCkpOwogICAgIGlmIChVTkxJS0VMWSghbWF5
YmVDb250ZXh0KSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBPdXRPZk1l
bW9yeUVycm9yIH0pOwogICAgICAgICByZXR1cm47CkBAIC03MCw5ICs3OCwxNSBAQCB2b2lkIFBh
aW50V29ya2xldDo6YWRkTW9kdWxlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBt
b2R1bGVVUkwsIFdvcmtsZQogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjb250ZXh0LT5w
YWludERlZmluaXRpb25Mb2NrKCkpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IGNvbnRleHQtPnBh
aW50RGVmaW5pdGlvbk1hcCgpLmtleXMoKSkKLSAgICAgICAgZG9jdW1lbnQuc2V0UGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVGb3JOYW1lKG5hbWUsIG1ha2VSZWYoY29udGV4dC5nZXQoKSkpOworICAg
ICAgICBkb2N1bWVudC0+c2V0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVGb3JOYW1lKG5hbWUsIG1h
a2VSZWYoY29udGV4dC5nZXQoKSkpOwogICAgIHByb21pc2UucmVzb2x2ZSgpOwogfQogCitWZWN0
b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gUGFpbnRXb3JrbGV0OjpjcmVhdGVHbG9i
YWxTY29wZXMoKQoreworICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50YXRpb24uCisgICAgcmV0
dXJuIHsgfTsKK30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTUGFpbnRXb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3Jr
bGV0LmgKaW5kZXggYjliMTM4NWJiMDhhM2YxY2VkNGViMmI0MjQwM2RkMTA3ZTVhODRlZS4uMDk0
YWU2YzEyZjc1MTkzODViYTFhNjJkN2JiMjA0ODIyM2YyYzFjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NQYWludFdvcmtsZXQuaApAQCAtNDEsMTUgKzQxLDIxIEBAIGNsYXNzIERPTUNTU05h
bWVzcGFjZTsKIAogY2xhc3MgUGFpbnRXb3JrbGV0IGZpbmFsIDogcHVibGljIFdvcmtsZXQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8UGFpbnRXb3JrbGV0PiBjcmVhdGUoKQorICAgIHN0YXRp
YyBSZWY8UGFpbnRXb3JrbGV0PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFpbnRXb3JrbGV0KTsKKyAgICAgICAgYXV0byB3
b3JrbGV0ID0gYWRvcHRSZWYoKm5ldyBQYWludFdvcmtsZXQoZG9jdW1lbnQpKTsKKyAgICAgICAg
d29ya2xldC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiB3b3JrbGV0OwogICAg
IH0KIAotICAgIHZvaWQgYWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVV
UkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsK
KyAgICAvLyBXb3JrbGV0LgorICAgIHZvaWQgYWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxl
VVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7
CisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNj
b3BlcygpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIFBhaW50V29ya2xldCgpID0gZGVmYXVsdDsK
KyAgICBleHBsaWNpdCBQYWludFdvcmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6
IFdvcmtsZXQoZG9jdW1lbnQpCisgICAgeyB9CiB9OwogCiBjbGFzcyBET01DU1NQYWludFdvcmts
ZXQgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDJhY2YzZjE4Y2FkYzY4NmIzMWVjM2FkMDViYzU4YTAxYjBlZjM0
YWUuLjhlOWIyMTkwZjhlMmIxYTc0OWQzM2ZiMzJjMTdkMGU5ZmJjZGNlNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtODQzOSw3ICs4NDM5LDcgQEAgRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyJiBEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b24KIFBhaW50V29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CiAgICAg
aWYgKCFtX3BhaW50V29ya2xldCkKLSAgICAgICAgbV9wYWludFdvcmtsZXQgPSBQYWludFdvcmts
ZXQ6OmNyZWF0ZSgpOworICAgICAgICBtX3BhaW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3Jl
YXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1fcGFpbnRXb3JrbGV0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA1ZGUwMTdjOGIxNTcwNGI4N2Y4MWM4
NTRiYmM0NzcwNjJiY2RhMTJjLi4zMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4OTAyZDNlN2QzMzc3
YzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5Lmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTU1LDcg
KzU1LDcgQEAgV2ViR1BVRGV2aWNlIGNvbmRpdGlvbmFsPVdFQkdQVQogV2ViS2l0TWVkaWFLZXlT
ZXNzaW9uIGNvbmRpdGlvbmFsPUxFR0FDWV9FTkNSWVBURURfTUVESUEKIFdlYlNvY2tldAogV29y
a2VyCi1Xb3JrbGV0R2xvYmFsU2NvcGUgY29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSQorV29y
a2xldEdsb2JhbFNjb3BlCiBYTUxIdHRwUmVxdWVzdAogWE1MSHR0cFJlcXVlc3RVcGxvYWQKIFdl
YlhSTGF5ZXIgY29uZGl0aW9uYWw9V0VCWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMDZhM2VjOTA2NTU4MjZmYmNkOTFhODNiNjQxZTI3ZjU5
ZTc1ZGU2MC4uYWViNTgzY2E0YjJhZTIxMzMwYWUzNDk4Mzk1YmI2NTgzMGUwNDk3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEyNyw2ICsx
MjcsMTEgQEAgcHVibGljOgogICAgIGJvb2wgY3NzUGFpbnRpbmdBUElFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9DU1NQYWludGluZ0FQSUVuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KFdFQl9BVURJTykKKyAgICB2b2lkIHNldEF1ZGlvV29ya2xldEVuYWJsZWQoYm9vbCBpc0VuYWJs
ZWQpIHsgbV9hdWRpb1dvcmtsZXRFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBhdWRp
b1dvcmtsZXRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb1dvcmtsZXRFbmFibGVkOyB9
CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgdm9pZCBzZXRDU1NUeXBl
ZE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX0NTU1R5cGVkT01FbmFibGVkID0gaXNFbmFi
bGVkOyB9CiAgICAgYm9vbCBjc3NUeXBlZE9NRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NT
VHlwZWRPTUVuYWJsZWQ7IH0KQEAgLTMwMiw2ICszMDcsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGJvb2wgbV9DU1NQYWludGluZ0FQSUVuYWJsZWQgeyBm
YWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBib29sIG1fYXVkaW9X
b3JrbGV0RW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfVFlQRURf
T00pCiAgICAgYm9vbCBtX0NTU1R5cGVkT01FbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MueWFtbAppbmRleCAwZTA5ZTViMTcxZTY3YzBkMjU0NDk2NzhmZmE5ODA0MTEzZjZk
YThjLi5hYjRkOTZlMTExMjBjNGJmMzVhNmE5MjNhOWVjYjI1ZjY5NTM5YzFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sCkBAIC0yNTksOCArMjU5LDYgQEAgcHJlZml4ZWRXZWJBdWRpb0Vu
YWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiBtb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFibGVk
OgogICBpbml0aWFsOiBmYWxzZQotYXVkaW9Xb3JrbGV0RW5hYmxlZDoKLSAgaW5pdGlhbDogZmFs
c2UKIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIGZ1bGxT
Y3JlZW5FbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFT
dHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCmluZGV4
IDQzZDU3NjUyOThjMDY3OTJjNmRkY2U4NWM0MmEwYTNmNTc1YTg3ODMuLjk4NTIwNWRhYmFhYjhk
YTM4NmY2NTY0ZDgwOTZmZDI4NjU1YzFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRp
YVN0cmF0ZWd5LmgKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IE5vd1BsYXlpbmdJbmZvOwogY2xh
c3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CiAjaWYgRU5BQkxFKFdF
Ql9BVURJTykKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBj
cmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAorICAgIHZpcnR1YWwgUmVmPEF1ZGlvRGVzdGluYXRpb24+
IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCiAgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSA9IDA7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCBkZWI3NTdkYzQ1ZTU3ODU4NTIxN2ZkM2Jl
YzA3MTJiNjQ0ZDc1Mzc0Li4xNjBjNjU3OGUxNWVkNWVhNzUyNWRjNzY4YmQ0ZWYzZmRjNzRmNGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bi5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25faAogCiAjaW5j
bHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
MCwxNiArNDEsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogLy8gVGhlIGF1ZGlvIGhhcmR3
YXJlIHBlcmlvZGljYWxseSBjYWxscyB0aGUgQXVkaW9JT0NhbGxiYWNrIHJlbmRlcigpIG1ldGhv
ZCBhc2tpbmcgaXQgdG8gcmVuZGVyL291dHB1dCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBh
dWRpby4KIC8vIEl0IG9wdGlvbmFsbHkgd2lsbCBwYXNzIGluIGxvY2FsL2xpdmUgYXVkaW8gaW5w
dXQgd2hlbiBpdCBjYWxscyByZW5kZXIoKS4KIAotY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7Citj
bGFzcyBBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlv
RGVzdGluYXRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICAvLyBQYXNzIGluIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBpZiBsaXZlL2xvY2FsIGF1
ZGlvIGlucHV0IGlzIGRlc2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZpYyBkZXZpY2UgaWRlbnRp
ZmljYXRpb24gaW5mb3JtYXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcyBjYW4gYmUg
cGFzc2VkIGluIHRoZSBpbnB1dERldmljZUlkLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYs
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShB
dWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51
bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSk7CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uKCkgPSBkZWZh
dWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1BsYXlpbmcoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDc0
YWQ2MTZmYTllMjVkZWI5OTljOTZiNjY3ZWQxNDk0NzBiZjY4NzIuLmRhNGU0YjJjOGI2MDczNDgz
ZjlmYWRjNjdiYWZiZmZmODY4NWY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAt
NDEsNyArNDEsNyBAQCBjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92
ZXJyaWRlIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRyOwog
Ci1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3Jl
YXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG51
bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSkKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKQogewogICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1dERldmlj
ZUlkIGFzIGFwcHJvcHJpYXRlLgogCkBAIC01NSw3ICs1NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNr
JiBjYWxsCiAgICAgaWYgKEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUpCiAg
ICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlKGNhbGxi
YWNrLCBzYW1wbGVSYXRlKTsKIAotICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlVW5pcXVlPEF1
ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNh
bXBsZVJhdGUpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdFJlZigqbmV3IEF1ZGlvRGVz
dGluYXRpb25Db2NvYShjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0
ZSkpOwogICAgIGRlc3RpbmF0aW9uLT5jb25maWd1cmUoKTsKICAgICByZXR1cm4gZGVzdGluYXRp
b247CiB9CkBAIC0xMDMsOSArMTAzLDEwIEBAIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6ZnJhbWVzUGVyQnVmZmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJCdXMtPmxlbmd0
aCgpOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9pZCBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQiKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBX
VEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1
ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAKICAgICBpZiAoIXJlc3VsdCkKQEAg
LTExNiw2ICsxMTcsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiB7CiAg
ICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wIik7CiAgICAgT1NTdGF0
dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIG1fZGlz
cGF0Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAg
ICAgc2V0SXNQbGF5aW5nKGZhbHNlKTsKQEAgLTEyMyw2ICsxMjUsNyBAQCB2b2lkIEF1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RvcCgpCiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzZXRJ
c1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2lzUGxheWluZ0xvY2spOwogICAgIGlmIChtX2lzUGxheWluZyA9PSBpc1BsYXlpbmcpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTczLDE4ICsxNzYsMzggQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUludDMy
IG4KIAogICAgIC8vIEFzc29jaWF0ZSB0aGUgZGVzdGluYXRpb24gZGF0YSBhcnJheSB3aXRoIHRo
ZSBvdXRwdXQgYnVzIHRoZW4gZmlsbCB0aGUgRklGTy4KICAgICBhc3NpZ25BdWRpb0J1ZmZlcnNU
b0J1cyhidWZmZXJzLCBtX291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBudW1iZXJP
ZkZyYW1lcywgMCwgbnVtYmVyT2ZGcmFtZXMpOwotICAgIHNpemVfdCBmcmFtZXNUb1JlbmRlciA9
IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIHNp
emVfdCBmcmFtZXNUb1JlbmRlcjsKIAorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2ZpZm9Mb2NrKTsKKyAgICAgICAgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8tPnB1bGwo
bV9vdXRwdXRCdXMucHRyKCksIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICAvLyBXaGVu
IHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlvV29y
a2xldFRocmVhZC4KKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAg
IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBmcmFtZXNUb1JlbmRlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0ZDo6dW5p
cXVlX2xvY2s8TG9jaz4gbG9jayhtX2lzUGxheWluZ0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOwor
ICAgICAgICAgICAgaWYgKGxvY2sub3duc19sb2NrKCkgJiYgbV9pc1BsYXlpbmcpCisgICAgICAg
ICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7CisgICAgICAg
IH0pOworICAgIH0gZWxzZQorICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1Rv
UmVuZGVyKTsKKworICAgIHJldHVybiBub0VycjsKK30KKworLy8gVGhpcyBydW5zIG9uIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwgb24gdGhlIGF1
ZGlvIGRldmljZSdzIHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgordm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVuZGVy
KQorewogICAgIGZvciAoc2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8IGZy
YW1lc1RvUmVuZGVyOyBwdXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplKSB7CiAgICAgICAgIGlmIChtX3Jlc2FtcGxlcikKICAgICAgICAgICAgIG1fcmVzYW1w
bGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NhbGxiYWNrLnJl
bmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX2ZpZm9Mb2NrKTsKICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0cigpKTsK
ICAgICB9Ci0KLSAgICByZXR1cm4gbm9FcnI7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNh
bGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IDAwZGRhMmZiMmEzN2I4M2YxMGVmYTUy
NzFiMTc2OGE4MGI0ODExZWMuLjA4OTRkNjIxYTJmMTUzMjI1MTI3MzY1MGI2ZTVhM2QzZWM5OTZm
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEF1ZGlv
QnVzOwogY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOwogY2xhc3MgUHVzaFB1bGxGSUZPOwog
Ci11c2luZyBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9IHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVS
YXRlKTsKK3VzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gUmVmPEF1
ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwog
CiAvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRlZmF1bHQgb3V0cHV0
IEF1ZGlvVW5pdAogY2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNvY29hIDogcHVibGljIEF1ZGlvRGVz
dGluYXRpb24sIHB1YmxpYyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKQEAgLTY1LDExICs2NSwxNSBA
QCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHNldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbihB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rp
b248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworCiBwcml2YXRlOgotICAg
IHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
CiAKLSAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVz
dGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25l
ZCwgdW5zaWduZWQsIGZsb2F0KTsKKyAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6
ZV90IGZyYW1lc1RvUmVuZGVyKTsKKworICAgIGZyaWVuZCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYs
IHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOwogICAgIAogICAgIC8vIEF1ZGlvU291cmNlUHJv
dmlkZXIuCiAgICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKSBmaW5hbDsKQEAgLTkxLDExICs5NSwxNCBAQCBwcml2YXRlOgogICAgIC8vIFJlc29s
dmVzIHRoZSBidWZmZXIgc2l6ZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBXZWJBdWRpbyBlbmdpbmUg
YW5kCiAgICAgLy8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZyb20gdGhlIGFjdHVhbCBhdWRpbyBk
ZXZpY2UuCiAgICAgVW5pcXVlUmVmPFB1c2hQdWxsRklGTz4gbV9maWZvOworICAgIExvY2sgbV9m
aWZvTG9jazsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+IG1f
cmVzYW1wbGVyOwogICAgIEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFRpbWVzdGFtcDsKIAogICAg
IGZsb2F0IG1fY29udGV4dFNhbXBsZVJhdGU7CisKKyAgICBMb2NrIG1faXNQbGF5aW5nTG9jazsK
ICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCA4ZmRlYjZhMjQyNDg0OWNhYzE3YmJlOTBhYWU3
MTJhODlhMjRkMTAwLi5jMDVhZTZiZTYyOWRkYjNkZjY3MjI4MjkxMTFjZThiNjQwMGVlNjhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC00OCw3ICs0OCw3
IEBAIHN0YXRpYyB2b2lkIGF1dG9BdWRpb1NpbmtDaGlsZEFkZGVkQ2FsbGJhY2soR3N0Q2hpbGRQ
cm94eSosIEdPYmplY3QqIG9iamVjdCwgZ2NoCiAgICAgICAgIGdfb2JqZWN0X3NldChHU1RfQVVE
SU9fQkFTRV9TSU5LKG9iamVjdCksICJidWZmZXItdGltZSIsIHN0YXRpY19jYXN0PGdpbnQ2ND4o
MTAwMDAwKSwgbnVsbHB0cik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRp
b24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6
IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTYwLDcgKzYw
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246
OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAobnVtYmVyT2ZPdXRwdXRDaGFu
bmVscyAhPSAyKQogICAgICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUo
JXUsICV1LCAlZikgLSB1bmhhbmRsZWQgb3V0cHV0IGNoYW5uZWxzIiwgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIAotICAgIHJldHVy
biBtYWtlVW5pcXVlPEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI+KGNhbGxiYWNrLCBzYW1wbGVS
YXRlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
KGNhbGxiYWNrLCBzYW1wbGVSYXRlKSk7CiB9CiAKIGZsb2F0IEF1ZGlvRGVzdGluYXRpb246Omhh
cmR3YXJlU2FtcGxlUmF0ZSgpCkBAIC0xNjUsNyArMTY1LDcgQEAgZ2Jvb2xlYW4gQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAg
IHJldHVybiBUUlVFOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0
KCkKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoRnVuY3Rpb248dm9pZChG
dW5jdGlvbjx2b2lkKCk+JiYpPiYmKQogewogICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2YWlsYWJs
ZSk7CiAgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5h
dGlvbkdTdHJlYW1lci5oCmluZGV4IGNmZTY4OTIwOGQwOTY4YTUxYThiYjFkMWU4N2Y2ZTE5ZDBm
MjMxNjYuLmQ1NTEwNGM4OGNjYmNkZmZmZjk3YzRlN2E0OTQ5ODZmOTk2YmY4ZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6
CiAgICAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBz
YW1wbGVSYXRlKTsKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKCk7CiAK
LSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lk
KEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUGxheWluZygpIG92ZXJy
aWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCA5ZGFh
N2QwMTQxZDgxMDRlNGY1YzRjMjY0OGJjOGM2YmU1MjZjMGM4Li41YTEyY2RlNGZjZGZjNTdmYWQ0
MmI3ZDllOGZlNzMyMDQzNTA5ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTQ1LDggKzQ1
LDkgQEAgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6TW9ja0F1ZGlvRGVzdGluYXRpb25Db2Nv
YShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogCiBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
Ojp+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpID0gZGVmYXVsdDsKIAotdm9pZCBNb2NrQXVk
aW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRv
UmVuZGVyVGhyZWFkKQogeworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUo
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhTZWNv
bmRzIHsgbV9udW1iZXJPZkZyYW1lc1RvUHJvY2VzcyAvIHNhbXBsZVJhdGUoKSB9KTsKICAgICBz
ZXRJc1BsYXlpbmcodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGQ0ZWFlODMzNDM1YzBh
NjA0NTVlZDBiOTY5MjU2OGM4ZWM2M2YzNmQuLmE4ZDI4YzRlZDFiYmVmZmQzMzA5NDUwZGFhZjMy
OWViYTI1MzRjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC0zOCwxMiArMzgsMTYgQEAgY2xhc3Mg
QXVkaW9JT0NhbGxiYWNrOwogY2xhc3MgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSBmaW5hbCA6
IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlv
bj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpIHsg
cmV0dXJuIG1ha2VVbmlxdWU8TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIHNh
bXBsZVJhdGUpOyB9CisgICAgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJhY2ss
IHNhbXBsZVJhdGUpKTsKKyAgICB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBNb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgfk1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoKTsKIAogcHJp
dmF0ZToKLSAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFs
OwogCiAgICAgdm9pZCB0aWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckV2ZW50TG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50
TG9vcC5jcHAKaW5kZXggN2RhY2MwZGE0MTQwYjMxYTdmZTRkZDY1MDliOTQ2MzljZjU1NDhkZS4u
YTRlN2RmZmY4MjliYzc5Nzc0MzgwMmZmMjBmMWY0NTg2ZDM1NDM1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmNwcApAQCAtMzcsMTIgKzM3LDEwIEBAIFJlZjxX
b3JrZXJFdmVudExvb3A+IFdvcmtlckV2ZW50TG9vcDo6Y3JlYXRlKFdvcmtlckdsb2JhbFNjb3Bl
JiBjb250ZXh0KQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlckV2ZW50TG9vcChjb250
ZXh0KSk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKIFJlZjxXb3JrZXJFdmVu
dExvb3A+IFdvcmtlckV2ZW50TG9vcDo6Y3JlYXRlKFdvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJFdmVudExvb3AoY29udGV4dCkp
OwogfQotI2VuZGlmCiAKIFdvcmtlckV2ZW50TG9vcDo6V29ya2VyRXZlbnRMb29wKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cigmY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRMb29wLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5oCmluZGV4
IGRjNGY0MDQ1MmRjN2UyOTA2ODQ5YzA1ZjY1YWMzYzc3NDQ0ZDcxZmYuLjFjZDBlY2I2YTJmMzBl
NjY4MzdlZGY3M2Y3YjQyYzE5Mjg0OTA2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyRXZlbnRMb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJFdmVudExvb3AuaApAQCAtMzcsMTAgKzM3LDcgQEAgY2xhc3MgV29ya2VyRXZlbnRMb29wIGZp
bmFsIDogcHVibGljIEV2ZW50TG9vcCwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnYK
IHB1YmxpYzoKICAgICAvLyBFeHBsaWNpdGx5IHRha2UgV29ya2VyR2xvYmFsU2NvcGUgYW5kIFdv
cmtsZXRHbG9iYWxTY29wZSBmb3IgZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy4KICAgICBzdGF0aWMg
UmVmPFdvcmtlckV2ZW50TG9vcD4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJik7Ci0KLSNpZiBF
TkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBzdGF0aWMgUmVmPFdvcmtlckV2ZW50TG9vcD4g
Y3JlYXRlKFdvcmtsZXRHbG9iYWxTY29wZSYpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIH5Xb3Jr
ZXJFdmVudExvb3AoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcAppbmRleCBiMmYzMzEyY2Y0YjA0NjFiODdmYWFhYzM5Y2Q0MmEwNjNlNThhYzczLi4x
ZmU5Mzk4N2VmOTYxZmRmYmUzOGY0N2NhNjcxYWY1ZmRhOThkOWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTQ0LDQgKzU0NCw5IEBAIFJl
ZmVycmVyUG9saWN5IFdvcmtlckdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7CiB9CiAKK1RocmVhZCogV29ya2VyR2xvYmFsU2Nv
cGU6OnVuZGVybHlpbmdUaHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC50aHJl
YWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGJkOWNmMTQwZGQ1MmZiODQ5OGI5ZmE0MTA2MGM5
M2FiZmE2ODM4NWUuLjkwZGYzYjZhZjNkNjNlYzYxYWVjOWExMjNjMDg3N2U3OWUzNGIyNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIldvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUg
IldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBuYW1lc3BhY2UgSURCQ2xp
ZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Qcm94eTsKIH0KIAotY2xhc3MgV29ya2VyR2xvYmFs
U2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBw
bGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxp
dGllcyB7CitjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtl
ckdsb2JhbFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwg
cHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMs
IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChXb3JrZXJHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2Vy
R2xvYmFsU2NvcGUoKTsKQEAgLTg1LDEzICs4NiwxNSBAQCBwdWJsaWM6CiAgICAgV29ya2VyU1dD
bGllbnRDb25uZWN0aW9uJiBzd0NsaWVudENvbm5lY3Rpb24oKTsKICNlbmRpZgogCi0gICAgV29y
a2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0K
KyAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSBmaW5hbCB7IHJldHVybiBtX3Nj
cmlwdC5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0
cjsgfQogCiAgICAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxl
cigpIGNvbnN0IHsgcmV0dXJuICptX2luc3BlY3RvckNvbnRyb2xsZXI7IH0KIAogICAgIFdvcmtl
clRocmVhZCYgdGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWQ7IH0KIAorICAgIFRocmVh
ZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0IGZpbmFsOworCiAgICAgdXNpbmcgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6aGFzUGVuZGluZ0FjdGl2aXR5OwogCiAgICAgdm9pZCBwb3N0VGFzayhU
YXNrJiYpIGZpbmFsOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFz
eW5jaHJvbm91c2x5LgpAQCAtMTE5LDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBib29sIGlz
Q2xvc2luZygpIHsgcmV0dXJuIG1fY2xvc2luZzsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jbG9zaW5nOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1NDhlMDg0OGJlMzUyMmI2YWQ5YzMyODUzMzk3NDZjN2MzOTc0
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUaHJlYWQ7Cit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIFdURjo6VGhyZWFk
KiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3Np
bmcoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyKiBzY3JpcHQoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZmOWJmODNlOTMwZGQxNjVkOGEzMzA0NzA1MmFkNTVkMjJmYWZh
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgeworcHVibGljOgorICAgIHZp
cnR1YWwgfldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGFjcXVpcmVIZWFwQWNjZXNzKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGFkZFRpbWVyU2V0
Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJh
Y2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworCisgICAg
dmlydHVhbCBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdCA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmNwcAppbmRleCA2NmVjZDUzNmY4MTNkMDI5YzQ5N2YxYWVhN2YyMTllZGZjNzViMzc1Li5iYjYx
ZmM1ZjJhOTdkYjg0YjExM2JlMjIzYzdhN2FkYzcxOWI0OTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJUaHJl
YWRHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiVGhyZWFkVGltZXJzLmgiCiAjaW5jbHVkZSAiV29y
a2VyUnVuTG9vcC5oIgotI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAi
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
IAogI2lmIFVTRShHTElCKQpAQCAtMTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgSXNGb3JE
ZWJ1Z2dpbmcgbV9pc0ZvckRlYnVnZ2luZyB7IElzRm9yRGVidWdnaW5nOjpObyB9OwogfTsKIAot
dm9pZCBXb3JrZXJSdW5Mb29wOjpydW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lk
IFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkK
IHsKICAgICBSdW5Mb29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1
Z2dpbmc6Ok5vKTsKICAgICBNb2RlUHJlZGljYXRlIG1vZGVQcmVkaWNhdGUoZGVmYXVsdE1vZGUo
KSk7CkBAIC0xNDMsMTMgKzE0MywxMyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJH
bG9iYWxTY29wZSogY29udGV4dCkKICAgICBydW5DbGVhbnVwVGFza3MoY29udGV4dCk7CiB9CiAK
LU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUo
V29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtl
clJ1bkxvb3A6OnJ1bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJiBj
b250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJ
c0ZvckRlYnVnZ2luZzo6WWVzKTsKICAgICByZXR1cm4gcnVuSW5Nb2RlKCZjb250ZXh0LCBNb2Rl
UHJlZGljYXRlIHsgZGVidWdnZXJNb2RlKCkgfSwgV2FpdEZvck1lc3NhZ2UpOwogfQogCi1NZXNz
YWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxT
Y29wZSogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdh
aXRNb2RlKQogewogICAgIEFTU0VSVChtb2RlICE9IGRlYnVnZ2VyTW9kZSgpKTsKICAgICBSdW5M
b29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Ok5vKTsK
QEAgLTE1OCwxMCArMTU4LDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9v
cDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5J
bk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNhdGUmIHBy
ZWRpY2F0ZSwgV2FpdE1vZGUgd2FpdE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtl
clJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCwg
Y29uc3QgTW9kZVByZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAg
ICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgp
ID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdU
aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogCiAgICAgSlNDOjpKU1J1bkxvb3BUaW1l
cjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjayB0aW1lckFkZGVkVGFzayA9IFdURjo6Y3JlYXRl
U2hhcmVkVGFzazxKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvblR5cGU+KFt0
aGlzXSB7CiAgICAgICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIGhlcmUsIHdl
IGp1c3Qgd2FudCB0byBsb29wIGFyb3VuZCBydW5Jbk1vZGUKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckds
b2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgaWYgKHdhaXRNb2RlID09IFdhaXRGb3JNZXNz
YWdlICYmIHByZWRpY2F0ZS5pc0RlZmF1bHRNb2RlKCkgJiYgbV9zaGFyZWRUaW1lci0+aXNBY3Rp
dmUoKSkKICAgICAgICAgdGltZW91dERlbGF5ID0gc3RkOjptaW4odGltZW91dERlbGF5LCBtX3No
YXJlZFRpbWVyLT5maXJlVGltZURlbGF5KCkpOwogCi0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRy
b2xsZXIqIHNjcmlwdCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlw
dCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CiAgICAgICAgIHNjcmlwdC0+cmVsZWFzZUhlYXBBY2Nl
c3MoKTsKICAgICAgICAgc2NyaXB0LT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVk
VGFzayk7CiAgICAgfQogICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0OwogICAgIGF1
dG8gdGFzayA9IG1fbWVzc2FnZVF1ZXVlLndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91
dChyZXN1bHQsIHByZWRpY2F0ZSwgdGltZW91dERlbGF5KTsKLSAgICBpZiAoV29ya2VyU2NyaXB0
Q29udHJvbGxlciogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byog
c2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5hY3F1aXJlSGVh
cEFjY2VzcygpOwogICAgICAgICBzY3JpcHQtPnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKHRp
bWVyQWRkZWRUYXNrKTsKICAgICB9CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBNZXNzYWdlUXVldWVX
YWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29u
dGV4dCwgY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6
cnVuQ2xlYW51cFRhc2tzKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJS
dW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQo
KS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51
bmRlcmx5aW5nVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKICAgICBBU1NFUlQobV9t
ZXNzYWdlUXVldWUua2lsbGVkKCkpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTI2Miw3ICsy
NjIsNyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3REZWJ1Z2dlclRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayYmIHRhc2spCiAgICAgcG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFz
ayksIGRlYnVnZ2VyTW9kZSgpKTsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJm
b3JtVGFzayhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6
VGFzazo6cGVyZm9ybVRhc2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7
CiAgICAgaWYgKCghY29udGV4dC0+aXNDbG9zaW5nKCkgJiYgY29udGV4dC0+c2NyaXB0KCkgJiYg
IWNvbnRleHQtPnNjcmlwdCgpLT5pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkpIHx8IG1fdGFzay5p
c0NsZWFudXBUYXNrKCkpCiAgICAgICAgIG1fdGFzay5wZXJmb3JtVGFzaygqY29udGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCmluZGV4IGE4YzlkZWJkODBkODA5OTU0
YTdhOWQ2OTBmNzc0MDZkMjUyODI2NjguLmVlMjZiMzdmMjk5Y2E2OTljMDRjMGIxYzc0NDE1MDQ4
MDg3MTU3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9v
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCkBAIC0zOCw3
ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBNb2RlUHJlZGljYXRl
OwotICAgIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOworICAgIGNsYXNzIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlOwogICAgIGNsYXNzIFdvcmtlclNoYXJlZFRpbWVyOwogCiAgICAgY2xhc3Mg
V29ya2VyUnVuTG9vcCB7CkBAIC00NywxMyArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB+V29ya2VyUnVuTG9vcCgpOwogICAgICAgICAKICAgICAgICAgLy8gQmxvY2tpbmcg
Y2FsbC4gV2FpdHMgZm9yIHRhc2tzIGFuZCB0aW1lcnMsIGludm9rZXMgdGhlIGNhbGxiYWNrcy4K
LSAgICAgICAgdm9pZCBydW4oV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW4o
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICBlbnVtIFdhaXRNb2RlIHsg
V2FpdEZvck1lc3NhZ2UsIERvbnRXYWl0Rm9yTWVzc2FnZSB9OwogCiAgICAgICAgIC8vIFdhaXRz
IGZvciBhIHNpbmdsZSB0YXNrIGFuZCByZXR1cm5zLgotICAgICAgICBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwg
V2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7Ci0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyR2xvYmFsU2NvcGUmKTsKKyAgICAgICAgTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBj
b25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlID0gV2FpdEZvck1lc3NhZ2UpOworICAgICAgICBN
ZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlJik7CiAKICAgICAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKICAgICAgICAgYm9vbCB0
ZXJtaW5hdGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlUXVldWUua2lsbGVkKCk7IH0KQEAg
LTczLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAKICAgICAgICAgcHJpdmF0ZToK
LSAgICAgICAgICAgIHZvaWQgcGVyZm9ybVRhc2soV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAg
ICAgICAgIHZvaWQgcGVyZm9ybVRhc2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAog
ICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayBtX3Rhc2s7CiAgICAgICAg
ICAgICBTdHJpbmcgbV9tb2RlOwpAQCAtODMsMTEgKzgzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wU2V0dXA7Ci0g
ICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3Bl
KiwgY29uc3QgTW9kZVByZWRpY2F0ZSYsIFdhaXRNb2RlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBjb25zdCBN
b2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOwogCiAgICAgICAgIC8vIFJ1bnMgYW55IGNsZWFuIHVw
IHRhc2tzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB0aGUgcXVldWUgYW5kIHJldHVybnMuCiAgICAg
ICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgY2xv
c2VkIG9yIGxvb3AgaGFzIGJlZW4gdGVybWluYXRlZC4KLSAgICAgICAgdm9pZCBydW5DbGVhbnVw
VGFza3MoV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW5DbGVhbnVwVGFza3Mo
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICBib29sIGlzQmVpbmdEZWJ1
Z2dlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdDb3VudCA+PSAxOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldC5jcHAKaW5kZXggM2Q2ZTBiN2FmMDFlMjE4NWUxYzlmZjlkYjA3ZmZkMzBl
ZGRkMjE3OC4uMzkwOGJkZjNhMjk2YzgxYjZmNGJhOGU4ZTA4ZTNmYzU4MmVlNWUzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAKQEAgLTI4LDI3ICsyOCw3NiBAQAogCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCi0jaW5jbHVkZSAi
V29ya2xldE9wdGlvbnMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNs
dWRlICJXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5n
VGFza3MuaCIKKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChXb3JrbGV0KTsKIAotUmVmPFdvcmtsZXQ+IFdvcmtsZXQ6OmNy
ZWF0ZSgpCitXb3JrbGV0OjpXb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdCgmZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xl
dCgpKTsKIH0KIAotV29ya2xldDo6V29ya2xldCgpCitXb3JrbGV0Ojp+V29ya2xldCgpID0gZGVm
YXVsdDsKKworRG9jdW1lbnQqIFdvcmtsZXQ6OmRvY3VtZW50KCkKK3sKKyAgICByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKKy8vIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93b3JrbGV0cy0xLyNkb20td29ya2xldC1hZGRtb2R1bGUKK3ZvaWQg
V29ya2xldDo6YWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMU3RyaW5nLCBXb3JrbGV0
T3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7
CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1l
bnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJUaGlzIGZyYW1lIGlzIGRldGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgVVJMIG1vZHVsZVVSTCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChtb2R1bGVVUkxT
dHJpbmcpOworICAgIGlmICghbW9kdWxlVVJMLmlzVmFsaWQoKSkgeworICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIk1vZHVsZSBVUkwgaXMgaW52YWxpZCJf
cyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3Byb3hpZXMuaXNFbXB0
eSgpKQorICAgICAgICBtX3Byb3hpZXMuYXBwZW5kVmVjdG9yKGNyZWF0ZUdsb2JhbFNjb3Blcygp
KTsKKworICAgIGF1dG8gcGVuZGluZ1Rhc2tzID0gV29ya2xldFBlbmRpbmdUYXNrczo6Y3JlYXRl
KCp0aGlzLCBXVEZNb3ZlKHByb21pc2UpLCBtX3Byb3hpZXMuc2l6ZSgpKTsKKyAgICBtX3BlbmRp
bmdUYXNrc1NldC5hZGQocGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSk7CisKKyAgICBmb3IgKGF1dG8m
IHByb3h5IDogbV9wcm94aWVzKSB7CisgICAgICAgIHByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShbcGVuZGluZ1Rhc2tzID0gcGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSwg
bW9kdWxlVVJMID0gbW9kdWxlVVJMLmlzb2xhdGVkQ29weSgpLCBjcmVkZW50aWFscyA9IG9wdGlv
bnMuY3JlZGVudGlhbHMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRo
aXMpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIGRvd25jYXN0PFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkuZmV0Y2hBbmRJbnZva2VT
Y3JpcHQobW9kdWxlVVJMLCBjcmVkZW50aWFscywgW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVu
ZGluZ1Rhc2tzKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXShP
cHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyks
IGV4Y2VwdGlvbiA9IGNyb3NzVGhyZWFkQ29weShleGNlcHRpb24pLCBwZW5kaW5nQWN0aXZpdHkg
PSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3Mt
PmFib3J0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3MtPmRlY3JlbWVudENvdW50ZXIoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCBXb3JrZXJS
dW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2xldDo6ZmluaXNo
UGVuZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFza3MmIHRhc2tzKQogeworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ1Rhc2tzU2V0LmNvbnRhaW5zKCZ0
YXNrcykpOworCisgICAgbV9wZW5kaW5nVGFza3NTZXQucmVtb3ZlKCZ0YXNrcyk7CiB9CiAKLXZv
aWQgV29ya2xldDo6YWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkws
IFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCitj
b25zdCBjaGFyKiBXb3JrbGV0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsKLSAgICAv
LyBGSVhNRTogQWRkIHByb3BlciBpbXBsZW1lbnRhdGlvbi4KLSAgICBVTlVTRURfUEFSQU0obW9k
dWxlVVJMKTsKLSAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICByZXR1cm4gIldvcmtsZXQiOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKaW5k
ZXggYjJiZWRjNjU4NjViNzRmNWY5OTU2ZjA0Y2ZjY2MzZjgzNTE5ZjJlMS4uNDE2ODY3NGM3M2Iy
OTkwOWJhNjI5NjI1NzIxYjM4MDUzZTIyN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQu
aApAQCAtMjUsMjcgKzI1LDQ1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiV29ya2xldE9wdGlvbnMu
aCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEb2N1bWVudDsKK2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5OworY2xhc3MgV29ya2xl
dFBlbmRpbmdUYXNrczsKIAotc3RydWN0IFdvcmtsZXRPcHRpb25zOwotCi1jbGFzcyBXb3JrbGV0
IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewor
Y2xhc3MgV29ya2xldCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0
V3JhcHBhYmxlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V29ya2xldD4sIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2xldCk7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXb3JrbGV0PiBjcmVhdGUoKTsKLSAgICB2aXJ0dWFsIH5Xb3JrbGV0
KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfldvcmtsZXQoKTsKICAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgYWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmts
ZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIGZpbmlzaFBlbmRpbmdUYXNr
cyhXb3JrbGV0UGVuZGluZ1Rhc2tzJik7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CisKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4mIHByb3hpZXMoKSBj
b25zdCB7IHJldHVybiBtX3Byb3hpZXM7IH0KIAogcHJvdGVjdGVkOgotICAgIFdvcmtsZXQoKTsK
KyAgICBleHBsaWNpdCBXb3JrbGV0KERvY3VtZW50Jik7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVz
KCkgPSAwOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8V29ya2xldEds
b2JhbFNjb3BlUHJveHk+PiBtX3Byb3hpZXM7CisgICAgSGFzaFNldDxSZWZQdHI8V29ya2xldFBl
bmRpbmdUYXNrcz4+IG1fcGVuZGluZ1Rhc2tzU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbAppbmRleCAwYjc3NGMyNzRhYWYyMGUw
Y2M4ODM3NzI3MWM3MTZhMDBmYWY5ZTYxLi4yOTNjZjA2ZTE1NTZlOWI1NzdhMmE0ZDE5NTg4ZDE2
ODA2YWJlZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbApAQCAtMjQsOCArMjQs
MTAgQEAKICovCiAKIFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAgICAgRXhwb3NlZD1XaW5kb3cs
CisgICAgR2xvYmFsPVdvcmtsZXQsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0gaW50ZXJm
YWNlIFdvcmtsZXQgewotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTx1bmRlZmluZWQ+
IGFkZE1vZHVsZShVU1ZTdHJpbmcgbW9kdWxlVVJMLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9ucyBv
cHRpb25zKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1
bGVVUkwsIG9wdGlvbmFsIFdvcmtsZXRPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcAppbmRleCA0ZTUxN2Ew
MWE3MzQ3M2IwYmQ0NTlmOWQ1MGNkZTIyOGE4MDc2OWQwLi5mZGY1NTBmNDQ5OTJkOWU2MDQzMWU3
ZDIzZmRmYjM5ZDFkMGU5M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldENvbnNvbGVDbGllbnQuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV29ya2xldENvbnNvbGVDbGllbnQuaCIKIAotI2lmIEVOQUJMRShDU1Nf
UEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TY3JpcHRBcmd1bWVudHMuaD4KQEAgLTcxLDQgKzY5LDMgQEAgdm9pZCBXb3Jr
bGV0Q29uc29sZUNsaWVudDo6cmVjb3JkRW5kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYKIHZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OnNjcmVlbnNob3QoSlND
OjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIHsgfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0Q29uc29sZUNsaWVudC5oCmluZGV4IGZiM2QwMWRhYzY5ODhkMDAyMjVhNmRmZGRkZTU5M2Nk
NzE5ODU4ODQuLjEyYmI0OWE1ZGFmYjhhZjNjM2NkOTk2N2Y2ZjBiYTFkYzNiNTUzYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuaApAQCAtMjUs
OCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQotCiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZUNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC02Miw0
ICs2MCwzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4
IDNiNzU4MmFmZmNkMDRiMTQ2MjkwZjNhNzQ2ODY3MzRhYzY5MGZlZjIuLmZhNmQzMTczOWExMGM2
ODFkYWExOWYzMGJlNmM5NTBiOTQyYzIyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgogCi0jaWYgRU5BQkxFKENT
U19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlLmgiCkBA
IC0zNiw3ICszNCw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgotI2luY2x1ZGUg
IldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhj
ZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CkBAIC00NywxMCArNDQsMjQgQEAgdXNp
bmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdv
cmtsZXRHbG9iYWxTY29wZSk7CiAKK1dvcmtsZXRHbG9iYWxTY29wZTo6V29ya2xldEdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgd2luZG93VVJMLCBKU0M6OlJ1bnRpbWVGbGFncyBqc1J1bnRpbWVGbGFn
cykKKyAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHRo
aXMpKQorICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQor
ICAgICwgbV91cmwod2luZG93VVJMKQorICAgICwgbV9qc1J1bnRpbWVGbGFncyhqc1J1bnRpbWVG
bGFncykKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9iYWxTY29wZXNTZXQo
KS5hZGQodGhpcyk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdCk7CisK
KyAgICBzZXRTZWN1cml0eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRl
KG1fdG9wT3JpZ2luLmNvcHlSZWYoKSkpOworICAgIHNldENvbnRlbnRTZWN1cml0eVBvbGljeSht
YWtlVW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGljeT4oVVJMIHsgdGhpcy0+dXJsKCkgfSwgKnRo
aXMpKTsKK30KKwogV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2bSwgU2NyaXB0U291cmNlQ29kZSYmIGNvZGUp
CiAgICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKICAgICAsIG1fc2NyaXB0
KG1ha2VVbmlxdWU8V29ya2xldFNjcmlwdENvbnRyb2xsZXI+KFdURk1vdmUodm0pLCB0aGlzKSkK
ICAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSkKKyAgICAs
IG1fdXJsKGNvZGUudXJsKCkpCiAgICAgLCBtX2NvZGUoV1RGTW92ZShjb2RlKSkKIHsKICAgICBh
dXRvIGFkZFJlc3VsdCA9IGFsbFdvcmtsZXRHbG9iYWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CkBA
IC02MSw3ICs3Miw3IEBAIFdvcmtsZXRHbG9iYWxTY29wZTo6V29ya2xldEdsb2JhbFNjb3BlKERv
Y3VtZW50JiBkb2N1bWVudCwgUmVmPEpTQzo6Vk0+JiYgdm0sIFNjCiAgICAgQVNTRVJUKGRvY3Vt
ZW50LnBhZ2UoKSk7CiAKICAgICBzZXRTZWN1cml0eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdp
blBvbGljeTo6Y3JlYXRlKG1fdG9wT3JpZ2luLmNvcHlSZWYoKSkpOwotICAgIHNldENvbnRlbnRT
ZWN1cml0eVBvbGljeShtYWtlVW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGljeT4oVVJMIHsgbV9j
b2RlLnVybCgpIH0sICp0aGlzKSk7CisgICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VV
bmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyB0aGlzLT51cmwoKSB9LCAqdGhpcykp
OwogfQogCiBXb3JrbGV0R2xvYmFsU2NvcGU6On5Xb3JrbGV0R2xvYmFsU2NvcGUoKQpAQCAtMTEz
LDcgKzEyNCw4IEBAIFN0cmluZyBXb3JrbGV0R2xvYmFsU2NvcGU6OnVzZXJBZ2VudChjb25zdCBV
UkwmIHVybCkgY29uc3QKIAogdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmV2YWx1YXRlKCkKIHsK
LSAgICBtX3NjcmlwdC0+ZXZhbHVhdGUobV9jb2RlKTsKKyAgICBpZiAobV9jb2RlKQorICAgICAg
ICBtX3NjcmlwdC0+ZXZhbHVhdGUoKm1fY29kZSk7CiB9CiAKIGJvb2wgV29ya2xldEdsb2JhbFNj
b3BlOjppc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3QKQEAgLTEzNSw3ICsxNDcsNyBAQCBV
UkwgV29ya2xldEdsb2JhbFNjb3BlOjpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCwgRm9y
Y2VVVEY4KSBjb25zdAogewogICAgIGlmICh1cmwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBV
UkwoKTsKLSAgICByZXR1cm4gVVJMKG1fY29kZS51cmwoKSwgdXJsKTsKKyAgICByZXR1cm4gVVJM
KHRoaXMtPnVybCgpLCB1cmwpOwogfQogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6bG9nRXhj
ZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+JiYgc3RhY2spCkBAIC0xNzEsNSArMTgzLDExIEBAIFJlZmVycmVyUG9saWN5
IFdvcmtsZXRHbG9iYWxTY29wZTo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAogICAgIHJldHVybiBS
ZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcjsKIH0KIAordm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6
OmZldGNoQW5kSW52b2tlU2NyaXB0KGNvbnN0IFVSTCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgLy8gRklY
TUU6IEFkZCBpbXBsZW1lbnRhdGlvbi4KKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxv
cHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggMjVkNTQ5YWM0YTBhYTZmZjc1
Mjg3NTVkNzA0N2M4MTRlZTdkYzQwNC4uYTE1ZWU4ZjEyZDBhODdkYWY1NjFlZTFlMzdhNzBkYzY2
ZDRkMDVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmgKQEAgLTI2LDMwICsyNiwzMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1Nf
UEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudFRh
cmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0
Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgor
I2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVz
c2FnZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgotI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50TG9vcFRhc2tHcm91cDsKIGNsYXNzIFdvcmtlckV2
ZW50TG9vcDsKLWNsYXNzIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOwogCiBlbnVtIFdvcmtsZXRH
bG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZUlk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJU
eXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2xldEdsb2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxTY29wZT4sIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhLCBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2xldEdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5Xb3JrbGV0R2xvYmFsU2NvcGUoKTsKQEAgLTU3LDExICs1OSwxNiBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgV29ya2xldEdsb2JhbFNjb3Blc1NldCA9IEhhc2hTZXQ8Y29uc3QgV29ya2xl
dEdsb2JhbFNjb3BlKj47CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdvcmtsZXRHbG9iYWxT
Y29wZXNTZXQmIGFsbFdvcmtsZXRHbG9iYWxTY29wZXNTZXQoKTsKIAorI2lmIEVOQUJMRShDU1Nf
UEFJTlRJTkdfQVBJKQogICAgIHZpcnR1YWwgYm9vbCBpc1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfQVVESU8p
CisgICAgdmlydHVhbCBib29sIGlzQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorI2VuZGlmCiAKICAgICBFdmVudExvb3BUYXNrR3JvdXAmIGV2ZW50TG9v
cCgpIGZpbmFsOwogCi0gICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NvZGUudXJsKCk7IH0KKyAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fdXJsOyB9CiAKICAgICB2b2lkIGV2YWx1YXRlKCk7CiAKQEAgLTcwLDcgKzc3LDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpk
ZXJlZjsKIAotICAgIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBt
X3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSBm
aW5hbCB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVz
c2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWw7
CiAKQEAgLTc5LDYgKzg2LDEwIEBAIHB1YmxpYzoKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2Nr
ZXRQcm92aWRlcigpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KIAorICAgIC8vIFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLgorICAgIFRocmVhZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBib29sIGlzQ2xvc2luZygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faXNDbG9zaW5nOyB9CisKICAgICBib29sIGlzQ29udGV4dFRocmVh
ZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGlzU2VjdXJlQ29udGV4
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTg2LDcgKzk3LDEwIEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAorICAg
IHZvaWQgZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJik7
CisKIHByb3RlY3RlZDoKKyAgICBXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB3aW5kb3dV
UkwsIEpTQzo6UnVudGltZUZsYWdzKTsKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQm
LCBSZWY8SlNDOjpWTT4mJiwgU2NyaXB0U291cmNlQ29kZSYmKTsKICAgICBXb3JrbGV0R2xvYmFs
U2NvcGUoY29uc3QgV29ya2xldEdsb2JhbFNjb3BlJikgPSBkZWxldGU7CiAgICAgV29ya2xldEds
b2JhbFNjb3BlKFdvcmtsZXRHbG9iYWxTY29wZSYmKSA9IGRlbGV0ZTsKQEAgLTEzNiw4ICsxNTAs
MTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V29ya2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3Jv
dXA7CiAKKyAgICBVUkwgbV91cmw7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgbV9qc1J1bnRpbWVG
bGFnczsKLSAgICBTY3JpcHRTb3VyY2VDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxTY3JpcHRT
b3VyY2VDb2RlPiBtX2NvZGU7CisgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZhbHNlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC0xNDUsNCArMTYxLDMgQEAgcHJpdmF0ZToKIFNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlKQog
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKTsgfQogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbAppbmRleCBkNzU5ZjBjZTFkMTZmODY5MTg2MDEy
Nzc2ZjBkYjE2YjYxYmFhNDc4Li5iZjA3MTM4NGEzZjMwOGZmNmM2NDVjOTU4NGNiM2IxY2I5ZTVl
MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5p
ZGwKQEAgLTI2LDggKzI2LDYgQEAKIFsKICAgICBDdXN0b21Qcm94eVRvSlNPYmplY3QsCiAgICAg
RXhwb3NlZD1Xb3JrbGV0LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9Q1NTUGFpbnRpbmdBUEksCi0g
ICAgQ29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSSwKICAgICBKU0xlZ2FjeVBhcmVudD1KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UsCiAgICAgSW1wbGljaXRUaGlzLAogICAgIElzSW1tdXRhYmxl
UHJvdG90eXBlRXhvdGljT2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXRHbG9iYWxTY29wZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFjNWQ5MWNjN2QwMjQyMGI1ZmFm
ZjIxOTFjMGVlZjhmZjlhNWQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXb3JrbGV0UGVuZGluZ1Rhc2tzOworCitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4gewor
cHVibGljOgorICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZVByb3h5KCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3Bl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCA9
IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZmU1ZDc2MWFmNDZm
MjYxNDExNzkwNGFjMTA0YzMwNDkxMTQ1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5nVGFza3MuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXb3JrbGV0UGVuZGluZ1Rhc2tzOjpXb3JrbGV0UGVuZGluZ1Rhc2tzKFdvcmts
ZXQmIHdvcmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3Vu
dGVyKQorICAgIDogbV93b3JrbGV0KG1ha2VXZWFrUHRyKHdvcmtsZXQpKQorICAgICwgbV9wcm9t
aXNlKFdURk1vdmUocHJvbWlzZSkpCisgICAgLCBtX2NvdW50ZXIoY291bnRlcikKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworfQorCit2b2lkIFdvcmtsZXRQZW5kaW5nVGFza3M6OmFi
b3J0KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCisgICAgaWYgKG1fY291bnRlciA9PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
b3VudGVyID0gLTE7CisgICAgbV9wcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOwor
ICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgIG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tz
KCp0aGlzKTsKK30KKwordm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpkZWNyZW1lbnRDb3VudGVy
KCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fY291bnRlciA9
PSAtMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLS1tX2NvdW50ZXI7CisgICAgaWYgKCFtX2Nv
dW50ZXIpIHsKKyAgICAgICAgbV9wcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgaWYgKG1fd29y
a2xldCkKKyAgICAgICAgICAgIG1fd29ya2xldC0+ZmluaXNoUGVuZGluZ1Rhc2tzKCp0aGlzKTsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzNkNmJiYWJlMGU5Yjkz
ZTI4M2EzMjg2NzE1Y2E4OWRjMjZjMDljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdvcmtsZXQ7CisKKy8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3Jr
bGV0cy8jcGVuZGluZy10YXNrcy1zdHJ1Y3QKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3MgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xldFBlbmRpbmdUYXNrcz4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V29ya2xldFBlbmRpbmdUYXNrcz4gY3JlYXRlKFdvcmtsZXQmIHdv
cmtsZXQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIGludCBjb3VudGVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xldFBlbmRpbmdUYXNrcyh3
b3JrbGV0LCBXVEZNb3ZlKHByb21pc2UpLCBjb3VudGVyKSk7CisgICAgfQorCisgICAgdm9pZCBh
Ym9ydChFeGNlcHRpb24mJik7CisgICAgdm9pZCBkZWNyZW1lbnRDb3VudGVyKCk7CisKK3ByaXZh
dGU6CisgICAgV29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYsIGludCBjb3VudGVyKTsKKworICAgIFdlYWtQdHI8V29ya2xldD4gbV93b3JrbGV0
OworICAgIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiBtX3Byb21pc2U7CisgICAgaW50IG1fY291
bnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyMGE2Zjg1NjE4
NThhZGZiZTJlMmJjMThlYmY3MTUwYjk3YWQxNGY4Li4xN2RmNWUxZjNjZjA2NTcxNGJjZWY3NWVk
ODVmY2FkNTM4ZjZlODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw4ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKIAotI2lmIEVOQUJM
RShDU1NfUEFJTlRJTkdfQVBJKQotCisjaW5jbHVkZSAiSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgpAQCAtNTYsNiArNTUsMTEgQEAgV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJlZjxWTT4mJiB2bSwgV29y
a2xldEdsb2JhbFNjb3AKICAgICBKU1ZNQ2xpZW50RGF0YTo6aW5pdE5vcm1hbFdvcmxkKG1fdm0u
Z2V0KCkpOwogfQogCitXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENvbnRy
b2xsZXIoV29ya2xldEdsb2JhbFNjb3BlKiB3b3JrbGV0R2xvYmFsU2NvcGUpCisgICAgOiBXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlcihWTTo6Y3JlYXRlKCksIHdvcmtsZXRHbG9iYWxTY29wZSkKK3sK
K30KKwogV29ya2xldFNjcmlwdENvbnRyb2xsZXI6On5Xb3JrbGV0U2NyaXB0Q29udHJvbGxlcigp
CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0oKSk7CkBAIC0xNDUsMTAgKzE0OSwxOSBAQCB2
b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICBpZiAoaXNFeGVj
dXRpb25Gb3JiaWRkZW4oKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKENTU19QQUlO
VElOR19BUEkpCiAgICAgaWYgKGlzPFBhaW50V29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRH
bG9iYWxTY29wZSkpIHsKICAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU1BhaW50V29y
a2xldEdsb2JhbFNjb3BlUHJvdG90eXBlLCBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLCBQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZT4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgor
CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoaXM8QXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgeworICAgICAgICBpbml0U2NyaXB0V2l0aFN1YmNs
YXNzPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUsIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTE5Niw1ICsy
MDksNjIgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2V0RXhjZXB0aW9uKEpTQzo6
RXhjZXB0aW9uKiBleGNlcHRpb24pCiAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7CiB9CiAKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OnJlbGVhc2VIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLnJlbGVhc2VBY2Nlc3Mo
KTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3Mo
KQoreworICAgIG1fdm0tPmhlYXAuYWNxdWlyZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyOjphZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRp
bWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIGF1dG8gcHJv
Y2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGltZXIpIHsKKyAgICAgICAgaWYgKCF0
aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGltZXItPmFkZFRpbWVyU2V0Tm90
aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhl
YXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAu
ZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmRlZmVycmVk
V29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVt
b3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAo
SlNSdW5Mb29wVGltZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHRpbWVyLT5yZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihjYWxs
YmFjayk7CisgICAgfTsKKworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0
eUNhbGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNh
bGxiYWNrKCkpOworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIo
KSk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9u
VGVybWluYXRpb24oKQoreworICAgIGlmIChtX2lzVGVybWluYXRpbmdFeGVjdXRpb24pCisgICAg
ICAgIHJldHVybjsKKworICAgIHsKKyAgICAgICAgLy8gVGhlIG11dGV4IHByb3ZpZGVzIGEgbWVt
b3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQgb25jZQorICAgICAgICAvLyB0ZXJtaW5hdGlvbiBp
cyBzY2hlZHVsZWQsIGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSB3aWxsCisgICAgICAgIC8vIGFj
Y3VyYXRlbHkgcmVmbGVjdCB0aGF0IGxleGljYWxHbG9iYWxPYmplY3Qgd2hlbiBjYWxsZWQgZnJv
bSBhbm90aGVyIHRocmVhZC4KKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NjaGVk
dWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAgICAgIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiA9
IHRydWU7CisgICAgfQorICAgIG1fdm0tPm5vdGlmeU5lZWRUZXJtaW5hdGlvbigpOworfQorCiti
b29sIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29u
c3QKK3sKKyAgICAvLyBTZWUgY29tbWVudHMgaW4gc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlv
biByZWdhcmRpbmcgbXV0ZXggdXNhZ2UuCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Nj
aGVkdWxlZFRlcm1pbmF0aW9uTG9jayk7CisgICAgcmV0dXJuIG1faXNUZXJtaW5hdGluZ0V4ZWN1
dGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBlMzZkMmEy
NDJiZjU0NjRmYTI3Y2YzZGE5YWI1Mjg0ZjAwMDRkNmVlLi42ZDQzY2U1ZjlmZmQyYTcwYWYwYmY2
ZTVhZWU1NGNkOGZhYzcyZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI1LDggKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1ZGUgIldvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dl
ci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CkBAIC00Niw5ICs0NSwxMSBAQCBjbGFzcyBXb3Jr
bGV0Q29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmts
ZXRDb25zb2xlQ2xpZW50OwogCi1jbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CisvLyBG
SVhNRTogV2Ugc2hvdWxkIHNoYXJlIG1vcmUgY29kZSB3aXRoIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIuCitjbGFzcyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciA6IHB1YmxpYyBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIGV4
cGxpY2l0IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAg
IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFJlZjxKU0M6OlZNPiYmLCBXb3JrbGV0R2xvYmFsU2Nv
cGUqKTsKICAgICB+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKTsKIApAQCAtNjQsNiArNjUsMTUg
QEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpOwogICAgIHZvaWQgZGlzYWJsZVdlYkFzc2VtYmx5KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKTsKIAorICAgIHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFj
cXVpcmVIZWFwQWNjZXNzKCkgZmluYWw7CisKKyAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0
aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spIGZpbmFs
OworICAgIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1l
cjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisKKyAgICB2b2lkIHNjaGVkdWxl
RXhlY3V0aW9uVGVybWluYXRpb24oKTsKKyAgICBib29sIGlzVGVybWluYXRpbmdFeGVjdXRpb24o
KSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9p
ZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRp
b24+JiByZXR1cm5lZEV4Y2VwdGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2Ug
PSBudWxscHRyKTsKIApAQCAtODcsNyArOTcsOCBAQCBwcml2YXRlOgogICAgIFdvcmtsZXRHbG9i
YWxTY29wZSogbV93b3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmts
ZXRDb25zb2xlQ2xpZW50PiBtX2NvbnNvbGVDbGllbnQ7CiAgICAgSlNDOjpTdHJvbmc8SlNXb3Jr
bGV0R2xvYmFsU2NvcGU+IG1fd29ya2xldEdsb2JhbFNjb3BlV3JhcHBlcjsKKyAgICBtdXRhYmxl
IExvY2sgbV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2s7CisgICAgYm9vbCBtX2lzVGVybWluYXRp
bmdFeGVjdXRpb24geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YTEwMWMzOTU5M2NjNGMx
NTRjNzQ1ZjZkNzk3MzdhMDJhOTIzZjZkLi4wYjlhYjFkY2UzNGE1MjBkODJlMmZhZDVmNWQwNmE4
NjllZjc0ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2
LDcgQEAgcHVibGljOgogICAgICAgICBzdG9wKCk7CiAgICAgfQogCi0gICAgdm9pZCBzdGFydCgp
IHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsgfQorICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGlu
YXRpb24tPnN0YXJ0KHsgfSk7IH0KICAgICB2b2lkIHN0b3AoKSB7IG1fZGVzdGluYXRpb24tPnN0
b3AoKTsgfQogICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+aXNQ
bGF5aW5nKCk7IH0KICAgICB1bnNpZ25lZCBmcmFtZXNQZXJCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX2Rlc3RpbmF0aW9uLT5mcmFtZXNQZXJCdWZmZXIoKSA7IH0KQEAgLTEyNSw3ICsxMjUsNyBA
QCBwcml2YXRlOgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9u
OwogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVmUHRyPEF1
ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDA2OTQ1YmFmZDVkMTg5YzdhMGY5
YzcyNDAyYmI4ODlkYzgwN2Y2ZjQuLjgyMTM4MDBiOWYxMGM1ODI2MGUwN2E3OTBmN2NiMjBhN2Uw
ZWEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTQzLDEwICs0
MywxMCBAQCB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogdXNpbmcgQXVkaW9E
ZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb247CiB1c2luZyBBdWRpb0lPQ2Fs
bGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLAorUmVmPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAgICAgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7Ci0g
ICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFj
aywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRD
aGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOwogfQogCiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTc3LDggKzc3LDkgQEAgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KCkKICAgICB9KTsKIH0KIAot
dm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3ZvaWQgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4m
Jik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKIHsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJU
aHJlYWQgPSBXVEZNb3ZlKGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAogICAgICAgICBNZXNzYWdl
czo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6
UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKQEAgLTg5LDE5ICs5MCwzMSBAQCB2b2lkIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAg
ICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVz
dGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlp
bmcpLCAwKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBudWxscHRyOwogfQogCiB2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktp
dDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHJl
bmRlcmluZyBvbiB0aGUgbWFpbiB0aHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgbm90IGFjdGl2
ZSwgd2hpY2ggaXMgbGlrZWx5IG5vdCBhIGdvb2QgaWRlYS4KKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBB
U1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CiAgICAgYXV0byBhdWRp
b0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUo
KSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCiAg
ICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRh
LmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3Mp
OwogCi0gICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0
YS5mcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbik7Ci0KLSAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgIGF1dG8gZG9SZW5kZXIgPSBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhdWRpb0J1cyA9IFdURk1vdmUoYXVkaW9CdXMpLCBmcmFt
ZXNUb1Byb2Nlc3MgPSBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlv
biA9IGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbl0geworICAgICAgICBtX2NhbGxiYWNrLnJl
bmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7
CisgICAgfTsKKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1f
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbZG9SZW5kZXIgPSBXVEZNb3ZlKGRvUmVuZGVyKSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgZG9SZW5kZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9CiB9
CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmco
Ym9vbCBpc1BsYXlpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAppbmRleCBhZGE2
ZmVlZmYzNzQzMGYzYzRkZDM3ZjEzYzdlM2E0ZTc2NmEzOWRhLi45MDdlY2Y1YTc3ZjQyYjk0Nzg5
MGJkZjNhMTdlMThlY2ZiNWFhNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgK
QEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6
QXVkaW9CdXM7CiAgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0Nh
bGxiYWNrOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpOwpA
QCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6QXVk
aW9EZXN0aW5hdGlvbgotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0
KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKICAgICBib29sIGlzUGxh
eWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CiAgICAgZmxvYXQgc2FtcGxl
UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQpAQCAtNzMsNiAr
NzMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVzUGVyQnVmZmVyIHsgMCB9Owog
ICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKICAg
ICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9u
PHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmU4NjFhMWU0ZTMxZTE0NzgyYTJiOWU4MzE5
OGMxNjdhNTk0NjExMy4uZDVhZWYxNTM0YWQyMzY1ZDIxMzdhMTdiNmY2ZDQ0ZTFlZjg1MTllYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2Vi
TWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFC
TEUoV0VCX0FVRElPKQotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+
IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorUmVmPFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVz
dGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5z
aWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCmluZGV4IDgxN2M0YzI5YjE3MzJmNDVmOTBlMjE1
NWQ2NWNlZTg0N2MxN2JlZTIuLjZiN2I5Y2U2MDNhODczOWU3MWQ5MDQ3NWZjYzc4NzI2OGY2ZDlm
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVk
aWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNp
ZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
ayYsCisgICAgUmVmPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGlu
YXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlOwogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXgg
ZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNjNmJjYTdiNjUzYTY1MjdiNy4uZWJiYjNiZWE2ZWRiYjQ3
YmNiNGUyZDBiMjk3ZmNkMDVlYmE2MzI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bQpAQCAtNjksNyArNjksNyBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kg
ZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJf
QVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlv
RGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1
dERldmljZUlkLAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0
aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJ
ZCwKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZp
Y2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1w
bGVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRmNGExZjc4NTA0
ZGJlMjMwYTk3N2U5N2ZkMjU5ZDI0ZTRmOTIwMzEuLmUwMzQyM2Q3NTNjYjE5ODBlZTNlYjg4OTJm
YTI4NTFlZTQ5NjI1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNjUs
NyArNjUsNyBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIGNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBw
dWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LAorICAgIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICAg
ICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0
dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA0ZDYzZjQw
Y2ZlZDc3MmE1NmMyNTRjMDUzMTA3MzI1YTJkOWFiNmUzLi43NDYxOWRlNDhlNjE0MWFkN2Q5YmVk
MjZjMDE2N2Y4MWUxNWQ5YjRlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCkBAIC04MzgsNiArODM4LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVu
dGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAg
IFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxl
ZDpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CiB9
CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAtOTMxLDcgKzkzMiw2IEBAIHN0YXRp
YyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgW3By
ZWZlcmVuY2VzIHNldFdlYkF1ZGlvRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRN
b2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFibGVkOllFU107Ci0gICAgW3ByZWZlcmVuY2VzIHNl
dEF1ZGlvV29ya2xldEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TWVkaWFTb3Vy
Y2VFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldFNvdXJjZUJ1ZmZlckNoYW5nZVR5
cGVFbmFibGVkOllFU107CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmlu
ZGluZ3MvbWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpp
bmRleCAzMWFlYzM4MmU3YmEzYTNhYmY5ZjI3MTIyZmI4NGUyMDU3ODgwN2M0Li4xZDA5MTNiNGVm
MDU5YTRlMWU3OTA2YzVlYjQ5ZGVkYjY2NDY0NTk1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
aW5kaW5ncy9tYWluLnB5CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgICAgICBleGl0X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9j
b2RlCiAKLSAgICBkZWYgZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5w
dXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxf
bWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUpOgorICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxm
LCBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1l
bnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwg
d29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3
b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUp
OgogICAgICAgICBpZGxfZmlsZXNfbGlzdCA9IHRlbXBmaWxlLm1rc3RlbXAoKQogICAgICAgICBm
b3IgaW5wdXRfZmlsZSBpbiBvcy5saXN0ZGlyKGlucHV0X2RpcmVjdG9yeSk6CiAgICAgICAgICAg
ICAobmFtZSwgZXh0ZW5zaW9uKSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKQEAgLTk4
LDYgKzk4LDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICctLXNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBzZXJ2aWNld29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS13b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLAogICAgICAgICAgICAgICAgJy0tcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCisgICAg
ICAgICAgICAgICAnLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBh
dWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAg
ICctLXRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCB0ZXN0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS12YWxpZGF0ZUFnYWluc3RQYXJzZXIn
XQogCkBAIC0yMDEsNiArMjAyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICB3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwnCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSA9ICdQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCisgICAgICAg
IGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAgICAgIHRlc3RnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQmluZGluZ1Rlc3RHbG9iYWxDb25zdHJ1Y3RvcnMu
aWRsJwogCiAgICAgICAgIHdvcmtfZGlyZWN0b3J5ID0gdGVtcGZpbGUubWtkdGVtcCgpCkBAIC0y
MTMsOSArMjE1LDEwIEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVj
dG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBzZXJ2
aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJl
Y3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgd29y
a2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgcGFpbnR3b3Jr
bGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJl
Y3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgcGFp
bnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQorICAgICAgICBhdWRp
b3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3Jr
X2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5
LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAg
IHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2Rp
cmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB0
ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKQogCi0gICAgICAgIGlmIHNlbGYu
Z2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9m
aWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwg
c2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUpOgorICAgICAgICBp
ZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KGlucHV0X2RpcmVjdG9yeSwg
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVu
ZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgICAgICBwcmlu
dCgnRmFpbGVkIHRvIGdlbmVyYXRlIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZS4nKQog
ICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSh3b3JrX2RpcmVjdG9yeSkKICAgICAgICAgICAgIHJl
dHVybiAtMQpAQCAtMjM1LDYgKzIzOCw4IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAg
ICAgICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRl
dGVjdF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2Rp
cmVjdG9yeSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToK
ICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKKyAgICAgICAgICAgIGlm
IHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwg
aW5wdXRfZGlyZWN0b3J5LCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpOgorICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogICAgICAg
ICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGly
ZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBGYWxzZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410240</attachid>
            <date>2020-10-01 09:52:18 -0700</date>
            <delta_ts>2020-10-01 12:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20201001095217.patch</filename>
            <type>text/plain</type>
            <size>169932</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzMDYxOWRiZGJhNjdjNzEzOTFlODNk
ZTJmYTIxNzU4MzIwN2FhZWEuLjBmM2M3NDFkYjMzZWM3YjQwY2JiYTZhZTJiYWU5NWQzZTU2OGQ4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlv
V29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEF1ZGlvV29ya2xldEFQSSBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBub3cgYmFja2VkIGJ5
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBvZgorICAgICAgICBTZXR0aW5ncy4gVGhp
cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBm
ZWF0dXJlIGZyb20gbm9uLW1haW4KKyAgICAgICAgdGhyZWFkcy4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0w
OS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjc3OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzZTNkOGYwY2Yw
N2JkMzQ3YjUzNzVkNGQ1MzNmYjdmYjJiODQwNy4uNDEwOWU3ZWFkMWNmZTM2YmRmYTA0YjkyNWQx
MjQzMmI3MjE3NjI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMC0wOS0zMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29y
a2xldDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29y
a2xldAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNw
ZWMtY29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxl
KCksIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29y
a2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRN
b2R1bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAg
ICAgICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2Ug
dGhlIHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAg
ICAgICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8g
cmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgp
IGFjdGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisg
ICAgICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBm
ZXcgaW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6
CisgICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAg
LSBQcmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVz
CisgICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1h
cC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgU3dpdGNoIGZy
b20gYSBzZXR0aW5nIHRvIGEgUnVudGltZUVuYWJsZWQgZmVhdHVyZSBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIGZlYXR1cmUgZmxhZyBvbgorICAgICAgICBub24tbWFpbiB0aHJlYWRzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0
OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGVH
bG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Ojpwcm94eSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaDoKKyAgICAgICAg
V2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS4K
KyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0YXJ0cyB0aGUgQXVkaW9X
b3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4K
KyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMgY2FyZSBvZiBwb3N0aW5n
IHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgYXMg
d2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0
aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAgLSBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3BlCisgICAgICAgIE5vbmUg
b2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
eWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2FnaW5nUHJveHkpIHdoaWNo
IHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdoaWNoIGNvbnN0cnVjdHMg
dGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFkKSBhbmQgdGFrZXMgY2Fy
ZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIHRvIHRoZSBB
dWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNsYXNzIHdoaWNoIHdyYXBz
IHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgUGFzcyBkb2N1bWVudCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0IGlzIG5vdyBhbiBBY3Rp
dmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSwg
cGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KCkgdGhhdCBkaXNwYXRj
aGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNvIHRoYXQgdGhlIEF1ZGlv
RGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhlYWQgaW5z
dGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJp
bmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1c2UgdGhlIEF1ZGlvV29y
a2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3IGF1ZGlvIHRocmVhZAor
ICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkgYXQgcnVudGltZSB0byBB
dWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOgorICAgICAgICBB
ZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFzIGEgR2xvYmFsU2Nv
cGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdvcmtsZXRTY3JpcHRDb250
cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFNob3VsZFVzZUdsb2Jh
bE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNz
LWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogY3NzL0RP
TUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNj
b3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5oOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5zdXJlUGFpbnRX
b3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2RlIHNvIHRoYXQgaXQga2Vl
cHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRBdWRpb1dvcmtsZXRBUElFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvV29ya2xldEFQSUVuYWJsZWQgY29u
c3QpOgorICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0QVBJIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlz
IG5vdyBiYWNrZWQgYnkgUnVudGltZUVuYWJsZWRGZWF0dXJlcworICAgICAgICBpbnN0ZWFkIG9m
IGEgc2V0dGluZywgc28gdGhhdCB0aGUgZmxhZyBjYW4gYmUgcXVlcmllZCBmcm9tIG5vbi1tYWlu
IHRocmVhZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICBNYWtlIEF1ZGlv
RGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhhdCBpdCBjYW4ga2VlcCBpdHNl
bGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0aGUgQXVkaW9Xb3JrbGV0VGhy
ZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg6
CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5kZXIgYXVkaW8sIHdlIG5vdyB1
c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRoZSBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuCisg
ICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkgYmVmb3JlIGRvaW5nIHRoZSBy
ZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29kZSBzbyB0aGF0IGl0IGtlZXBz
IGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAg
IEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2VkIGJ5IFdvcmtlciBhbmQgV29y
a2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGluIG9yZGVyIHRvIHByb21vdGUg
Y29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtlclJ1
bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJl
CisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiB3b3Jr
bGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OldvcmtsZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmZpbmlzaFBl
bmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0OjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIGFkZE1vZHVsZSgp
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jZG9t
LXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xldCBhbiBBY3RpdmVET01PYmpl
Y3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21pc2UgYXN5bmNocm9ub3VzbHku
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgorICAgICAgICBVcGRhdGUgV29y
a2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNsYXNzZWQgYnkgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWludFdvcmtsZXQtc3BlY2lmaWMu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGludGVyZmFjZSB0byBpbnRlcmFj
dCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgcHVy
cG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8gdGhlIFdvcmtsZXRHbG9iYWxT
Y29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRpYWwgdGhyZWFkaW5nIGNvbXBs
ZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVhZGluZyB3aGlsZSBQYWludFdv
cmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFz
a3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRp
bmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6
ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNr
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmNyZWF0
ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6CisgICAgICAgIC0gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorICAg
ICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJpZ2h0IGZvciBBdWRpb1dvcmts
ZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisgICAgICAgIFdvcmtsZXRHbG9i
YWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2ZSBwcm9wZXIgc3VwcG9ydCBm
b3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0cyBjYW4gaGF2ZSBzZXZlcmFs
IFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUsIGl0IGFsbG93cyB1cyB0bwor
ICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpY2F0aW9uIHRleHQgbW9y
ZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVF
eGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgQXVkaW9Xb3JrbGV0cyBhbmQg
bm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAyMC0xMC0wMSAgQWRyaWFuIFBl
cmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IEFkZCBtaXNzaW5nIGd1YXJkIGFyb3VuZCBNb2Rlcm5QYXRoIHVzYWdlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
NTM1ODdjMGYxNzVlYzk2ODhmMWU1N2NlYjc3MDgxNGNkOGQ3Y2ZjLi5kMDVkZTViZDRkODA2MGM4
MDU2NjAzZDAxZTQwMzhmMTIyMDMwMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIw
LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgdG8gbWF0Y2ggd2hhdCB3YXMgZG9uZSBpbiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuCisg
ICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBpcyB1c2VkIHdoZW4gdGhlIEdQVSBw
cm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbjo6c3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oOgorCiAyMDIwLTEwLTAxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVJlY29yZGVyIHNob3VsZCBzdXBw
b3J0IE1lZGlhUmVjb3JkZXJPcHRpb25zLm1pbWVUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTdkYWRmZTUwMWQwZTJmNTQ1NGQ0YThmZWQ2MmZhYzZkOTAxZjgzYi4uYWYwZWY5
NzgwM2VjNjhmMDdjYzdiZTFhMTUxZjhhOTI4NGIzZWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRp
b1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorCiAyMDIwLTA5LTI5
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbUHJlZmVyZW5jZXNd
IEFkb3B0IHNoYXJlZCBwcmVmZXJlbmNlcyBjb25maWd1cmF0aW9uIGFuZCBzY3JpcHQgaW4gV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMmM1MzM3M2Q2MTFlZTUzNDNiNzEx
N2QwZjc4YzYyNTRlMDc2ZTU1My4uNjBlNWQ3MWMxY2M4NTYwZGEzNzYyOGU1ODNmYTcyNTUwNTEw
Mjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdhY3kgc2hvdWxkIGNhbGwgUGFnZTo6Zmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBm
NWYwZDFiNWNlMTI0ZGJhNzA2NjE5YzU4MGRhYmU4Y2JhODkzZjk3Li5hM2UxZTYxZGJjZDExNWRk
MmM0MWUwNjkyZTRmNzAyZTE4Y2JjNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApA
QCAtODUsNiArODUsNyBAQCBBdWRpb1dvcmtsZXRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1
bWFuUmVhZGFibGVOYW1lOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKICAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiV2ViQXVkaW8gQXVkaW9Xb3JrbGV0IEFQSSIKKyAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX0FV
RElPKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0TGVnYWN5OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0ZGZjZWJmMjQ0NWE2YzRhNWU5NjM0ODVlNDYzNTU0NmY3NmNmOTBlLi4xOTQzODAy
M2M0MzU4YjA2MDYxMDNjNjVjNDdkNTg5ZjdlZTVjMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDc0LDYgKzQ3NCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldC5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTE3NjYsNiArMTc2Nyw3IEBAIHNldChERURJQ0FU
RURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vCiBzZXQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCkKIHNldChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsKQorc2V0KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9BdWRpb1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiAKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJ
RVMgV2ViQ29yZSkKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9JTkNMVURFX0RJUkVDVE9SSUVTICR7
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMs
OCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICAgICAgLS1kZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7U0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFfQogICAgICAgICAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JHtXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQorICAgICAgICAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFfQorICAgICAgICAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
e0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSkKIGxpc3QoQVBQRU5E
IFdlYkNvcmVfREVQRU5ERU5DSUVTIFdlYkNvcmVCaW5kaW5ncykKIAogaWYgKEVOQUJMRV9XRUJJ
TlNQRUNUT1JVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDRmYzA1NDRmOWNkOTc2MWFlMDFkY2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4
ZGNmOTY5ODJhNDA4Mjk5NzQ1ODI1ODM0YjcxNjBiNDVkMjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDYgKzMzMCw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1w
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCisk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggNDQyMTYwNDY3ZGUxNjVlNzVkNTQ0OTc1MGZkZGExM2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4
ZWRkYTg0YWQyODM0ZjY4OGRlZDMyMDRkZTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEsNCArMSw1IEBACiAjIFRoaXMgZmls
ZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0
eU5hbWVzLmgKQEAgLTIwNyw2ICsyMDgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291cmNl
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9X
b3JrbGV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBdWRpb1dvcmtsZXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRO
b2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dWRpb1dvcmtsZXROb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkYjFkNmFhNDY0YTNhMjAxNDg1OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4y
YzFjMTA4OWFkNWFiNmI3NTlmNTA2ZGMxYWU5MDNjZmYyMDYwNmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTQwNyw2ICs0MDcsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmlkbCBcCkBAIC0xNzQ4LDYgKzE3NDksNyBAQCBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSA9IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydQogU0VS
VklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFID0gV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogUEFJTlRXT1JLTEVU
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9ycy5pZGwKK0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxF
ID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1Q
ID0gaWRsX2ZpbGVzLnRtcAogSURMX0FUVFJJQlVURVNfRklMRSA9ICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KIApAQCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJ
RExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogICAgICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSBcCi0gICAgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RSkKKyAgICAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisg
ICAgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKICMKIElETF9J
TlRFUk1FRElBVEVfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklM
RVMpKQogCiAkKElETF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNf
U0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFU
VVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtl
ICQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKIAkkKGZvcmVhY2gg
ZiwkKEpTX0JJTkRJTkdfSURMUyksQGVjaG8gJChmKT4+JChJRExfRklMRVNfVE1QKSQoTkwpKQot
CSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAt
LWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVND
UklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVz
RmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUg
JChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUg
JChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChX
SU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkg
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMg
IiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1p
ZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElE
TF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVN
RU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VC
U1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9S
U19GSUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5U
V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtF
RklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmgg
OiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJ
RExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBF
TkRFTkNJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1NYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtTWFwLmlkbAppbmRleCBiZWQ3YjQwZGJjMzJkYjMyMmU3OWI2ODRkYTUwYjBkOTc2YWVmMGM2
Li45ZWUwZjUyYzNjZTk0ODUyZTNlMmUyOTIyOGM3ZmViZDQwNzIxMzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1NYXAuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbU1hcC5pZGwKQEAgLTI4LDcg
KzI4LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKLSAgICBFbmFibGVkQnlT
ZXR0aW5nPUF1ZGlvV29ya2xldCwKKyAgICBFbmFibGVkQXRSdW50aW1lPUF1ZGlvV29ya2xldCwK
ICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBv
c2VkPVdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5MGNkYzkwNmNjYjFlODcxMGNjZWJlZmMu
LmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0NWUwYjFiYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKQEAgLTMxLDE1ICsz
MSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0Lmgi
CiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkKK1Jl
ZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldChkb2N1bWVu
dCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiB3b3JrbGV0
OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxT
Y29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVHbG9iYWxTY29wZXMoKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7CisgICAgLy8gV2ViQXVkaW8gdXNlcyBh
IHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJuIHsgQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVkaW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQo
KQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1ZGlvV29ya2xldDo6cHJveHkoKSBjb25z
dAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5wcm94aWVzKCk7CisgICAgaWYgKHByb3hp
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNh
c3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHByb3hpZXMuZmlyc3QoKS5wdHIoKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1ZTMxMmE5NmRmYzhiNTNkYmM3MGIwOTQw
NTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRkNDNmNjhiZjg1NDkxNDEyOTg3ZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaApAQCAt
MzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVkaW9Xb3Jr
bGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk7
CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxB
dWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOworCisgICAgQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9Xb3JrbGV0KCk7
CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3VtZW50Jik7CisKKyAgICAvLyBXb3JrbGV0
LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxT
Y29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbAppbmRleCBiYzVlYThm
MGQ1ZjdmYmI0ZDM2ZWM4NjI4YTkzYmExNDRhZWRmYWQ3Li44MGM2YTcyNDAxODNjNDc1NzQ2Mjlj
ODg5ODk4ZGU0YjdmYmExZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXQuaWRsCkBAIC0yOCw3ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRp
b25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAg
RW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQsCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZWVhZjE4NjYwMWEyNDZmNjUyY2Q3MmIwMDRjYmI0YTk0NGZlOGJh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgi
CisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSk7CisKK0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVh
ZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBXb3JrbGV0R2xv
YmFsU2NvcGUocGFyYW1ldGVycy53aW5kb3dVUkwsIHBhcmFtZXRlcnMuanNSdW50aW1lRmxhZ3Mp
CisgICAgLCBtX3RocmVhZCh0aHJlYWQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Cit9CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUo
KSA9IGRlZmF1bHQ7CisKK1RocmVhZCogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OnVuZGVybHlp
bmdUaHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC0+dGhyZWFkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1YmZhNGNlYzZhZmRiZjJmMzJjZTM5NmE3ZGJk
MjMzYWY5MTcwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRUaHJlYWQ7CisKK3N0cnVj
dCBXb3JrbGV0UGFyYW1ldGVyczsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlPiBjcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiB0aHJlYWQsIGNvbnN0
IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUodGhyZWFkLCBwYXJhbWV0ZXJzKSk7
CisgICAgfQorICAgIH5BdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpOworCisgICAgVGhyZWFkKiB1
bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRl
cnMmKTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+IG1fdGhyZWFk
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKQorc3RhdGljIGJvb2wgaXNU
eXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0
dXJuIGlzPFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8
V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS5pc0F1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlKCk7IH0KK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xv
YmFsU2NvcGUmIGNvbnRleHQpIHsgcmV0dXJuIGNvbnRleHQuaXNBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTdmNTM4ZTcw
OTJhNGEwMTVhOGNkN2RkMDcxNzhjNTg4Zjg1YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgRXhwb3NlZD1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1B
dWRpb1dvcmtsZXQsCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVU
b05hdGl2ZU9iamVjdCwKKyAgICBJbXBsaWNpdFRoaXMsCisgICAgSXNJbW11dGFibGVQcm90b3R5
cGVFeG90aWNPYmplY3QsCisgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3RPblBy
b3RvdHlwZSwKKyAgICBHbG9iYWw9KFdvcmtsZXQsQXVkaW9Xb3JrbGV0KSwKK10gaW50ZXJmYWNl
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogV29ya2xldEdsb2JhbFNjb3BlIHsKKyAgICAvLyBJ
bXBsZW1lbnQgQVBJLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDlkZmNmNzhkNDJiNGE0YjRiN2NhZWZlNzdhODNlMDZiMTJlYzAxYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKKworI2luY2x1ZGUg
IkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldFRocmVhZC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5nVGFza3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdGF0aWMgV29ya2xldFBhcmFtZXRlcnMgZ2VuZXJhdGVXb3JrbGV0UGFyYW1ldGVycyhB
dWRpb1dvcmtsZXQmIHdvcmtsZXQpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSB3b3JrbGV0LmRv
Y3VtZW50KCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBhdXRv
IGpzUnVudGltZUZsYWdzID0gZnJhbWUgPyBmcmFtZS0+c2V0dGluZ3MoKS5qYXZhU2NyaXB0UnVu
dGltZUZsYWdzKCkgOiBKU0M6OlJ1bnRpbWVGbGFncygpOworCisgICAgcmV0dXJuIHsKKyAgICAg
ICAgZG9jdW1lbnQtPnVybCgpLAorICAgICAgICBqc1J1bnRpbWVGbGFncworICAgIH07Cit9CisK
K0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eShB
dWRpb1dvcmtsZXQmIHdvcmtsZXQpCisgICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQdHIod29ya2xl
dCkpCisgICAgLCBtX3dvcmtsZXRUaHJlYWQoQXVkaW9Xb3JrbGV0VGhyZWFkOjpjcmVhdGUoZ2Vu
ZXJhdGVXb3JrbGV0UGFyYW1ldGVycyh3b3JrbGV0KSkpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKworICAgIG1fd29ya2xldFRocmVhZC0+c3RhcnQoKTsKK30KKworQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHk6On5BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSgpID0gZGVmYXVs
dDsKKworYm9vbCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9X
b3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNv
bnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBtX3dvcmtsZXRUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1l
c3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE3YWRmNGYyODM4MDNhYjk0NTEwM2Q5
ZjMyYTZmODc5MWJhMTQ5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0OworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFkOworCitj
bGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eT4gY3JlYXRlKEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KHdvcmtsZXQpKTsKKyAg
ICB9CisKKyAgICB+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsKKworICAgIC8vIFRoaXMg
bWV0aG9kIGlzIHVzZWQgaW4gdGhlIG1haW4gdGhyZWFkIHRvIHBvc3QgdGFzayBiYWNrIHRvIHRo
ZSB3b3JrbGV0IHRocmVhZC4KKyAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2Rl
KSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eShBdWRpb1dvcmtsZXQmKTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIFdlYWtQdHI8QXVkaW9X
b3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVhZD4gbV93b3JrbGV0
VGhyZWFkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KQorc3RhdGlj
IGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZVByb3h5JiBwcm94
eSkgeyByZXR1cm4gcHJveHkuaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSgpOyB9CitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5pZGwKaW5kZXggNTYyNzE0ODY2M2YwNDIxOGIxZTU1MDUxNzViMDQ5NWE1NDY5MTIwNi4uMzQw
YjhjYWIxZDI0MzQwZjlhNjY3YjRlYTc1MmJiNWM3ZjJjMzMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCkBAIC0yOCw3
ICsyOCw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCi0gICAgRW5hYmxlZEJ5
U2V0dGluZz1BdWRpb1dvcmtsZXQsCisgICAgRW5hYmxlZEF0UnVudGltZT1BdWRpb1dvcmtsZXQs
CiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgU2Vj
dXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAppbmRleCBhOWUxOWI2OTVlMDZmMjMxMzg4
ZTczNWIyYjYwNTI5NzlmMTFmOTA1Li44NzFhZWUwMDBmOGQ1MGVjNGMzMDQ1NzE5N2Y1YjJiNDJm
MDRkMDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbApAQCAtMjgsNyArMjgsNyBAQAogCiBbCiAg
ICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAotICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3Jr
bGV0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9QXVkaW9Xb3JrbGV0LAogXSBkaWN0aW9uYXJ5IEF1
ZGlvV29ya2xldE5vZGVPcHRpb25zIDogQXVkaW9Ob2RlT3B0aW9ucyB7CiAgICAgdW5zaWduZWQg
bG9uZyBudW1iZXJPZklucHV0cyA9IDE7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZk91dHB1
dHMgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRUaHJlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzMDBiMDliNmNkODFjNzZhODdiYTIwOTkx
MWI1NjllMTdmMjdkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRUaHJl
YWQuaCIKKworI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpZiBVU0Uo
R0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitXb3JrbGV0UGFyYW1ldGVycyBXb3JrbGV0UGFyYW1ldGVyczo6aXNvbGF0
ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV29ya2xldFBhcmFtZXRlcnMgeworICAgICAg
ICB3aW5kb3dVUkwuaXNvbGF0ZWRDb3B5KCksCisgICAgICAgIGpzUnVudGltZUZsYWdzCisgICAg
fTsKK30KKworQXVkaW9Xb3JrbGV0VGhyZWFkOjpBdWRpb1dvcmtsZXRUaHJlYWQoY29uc3QgV29y
a2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBtX3BhcmFtZXRlcnMocGFyYW1ldGVy
cy5pc29sYXRlZENvcHkoKSkKK3sKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0
KCkKK3sKKyAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xl
dEdsb2JhbFNjb3BlTG9jayk7CisKKyAgICBSZWY8VGhyZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNy
ZWF0ZSgiV2ViQ29yZTogQXVkaW9Xb3JrbGV0IiwgW3RoaXNdIHsKKyAgICAgICAgd29ya2xldFRo
cmVhZCgpOworICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICAvLyBGb3JjZSB0aGUgVGhy
ZWFkIG9iamVjdCB0byBiZSBpbml0aWFsaXplZCBmdWxseSBiZWZvcmUgc3RvcmluZyBpdCB0byBt
X3RocmVhZCAoYW5kIGJlY29taW5nIHZpc2libGUgdG8gb3RoZXIgdGhyZWFkcykuCisgICAgV1RG
OjpzdG9yZVN0b3JlRmVuY2UoKTsKKyAgICBtX3RocmVhZCA9IFdURk1vdmUodGhyZWFkKTsKK30K
Kwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6OndvcmtsZXRUaHJlYWQoKQoreworICAgIGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisjaWYgVVNFKEdMSUIpCisgICAgR1Jl
ZlB0cjxHTWFpbkNvbnRleHQ+IG1haW5Db250ZXh0ID0gYWRvcHRHUmVmKGdfbWFpbl9jb250ZXh0
X25ldygpKTsKKyAgICBnX21haW5fY29udGV4dF9wdXNoX3RocmVhZF9kZWZhdWx0KG1haW5Db250
ZXh0LmdldCgpKTsKKyNlbmRpZgorCisgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dENvbnRyb2xsZXI7CisgICAgeworICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVh
ZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisgICAgICAgIG1fd29ya2xldEds
b2JhbFNjb3BlID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZSgqdGhpcywgbV9wYXJh
bWV0ZXJzKTsKKworICAgICAgICBzY3JpcHRDb250cm9sbGVyID0gbV93b3JrbGV0R2xvYmFsU2Nv
cGUtPnNjcmlwdCgpOworCisgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7Cisg
ICAgICAgICAgICAvLyBUaGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFk
IGhhZCBhIGNoYW5jZSB0byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQs
CisgICAgICAgICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKSBjb3VsZG4ndCBiZSBjYWxsZWQgZnJv
bSBzdG9wKCkuCisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5zY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKCk7CisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVj
dXRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJ1bkV2ZW50TG9vcCgpOworCisjaWYg
VVNFKEdMSUIpCisgICAgZ19tYWluX2NvbnRleHRfcG9wX3RocmVhZF9kZWZhdWx0KG1haW5Db250
ZXh0LmdldCgpKTsKKyNlbmRpZgorCisgICAgUmVmUHRyPFRocmVhZD4gcHJvdGVjdG9yID0gbV90
aHJlYWQ7CisKKyAgICBBU1NFUlQobV93b3JrbGV0R2xvYmFsU2NvcGUtPmhhc09uZVJlZigpKTsK
KworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gd29ya2xldEdsb2JhbFNjb3Bl
VG9EZWxldGU7CisgICAgeworICAgICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2Fy
eSB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBjaGFuZ2UgbV93b3JrZXJHbG9iYWxTY29wZQorICAg
ICAgICAvLyB3aGlsZSBXb3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNjZXNzaW5nIGl0LgorICAgICAg
ICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNj
b3BlTG9jayk7CisKKyAgICAgICAgLy8gRGVsYXkgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBXb3Jr
ZXJHbG9iYWxTY29wZSBjb250ZXh0IHVudGlsIGFmdGVyIHdlJ3ZlIHVubG9ja2VkIHRoZQorICAg
ICAgICAvLyBtX3RocmVhZENyZWF0aW9uQW5kV29ya2VyR2xvYmFsU2NvcGVNdXRleC4gVGhpcyBp
cyBuZWVkZWQgYmVjYXVzZSBkZXN0cnVjdGluZyB0aGUKKyAgICAgICAgLy8gY29udGV4dCB3aWxs
IHRyaWdnZXIgdGhlIG1haW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5zdCB1cyB0byBkZWxldGUgdGhl
IFdvcmtlclRocmVhZAorICAgICAgICAvLyBvYmplY3QsIGFuZCB0aGUgV29ya2VyVGhyZWFkIG9i
amVjdCBvd25zIHRoZSBtdXRleCB3ZSBuZWVkIHRvIHVubG9jayBhZnRlciB0aGlzLgorICAgICAg
ICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUobV93b3JrbGV0R2xvYmFsU2Nv
cGUpOworICAgIH0KKworICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0
aGUgY29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCisg
ICAgLy8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQs
IGJlY2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95
IHRoZW0uCisgICAgd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGUgPSBudWxscHRyOworCisgICAg
Ly8gU2VuZCB0aGUgbGFzdCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJlIERlcmVmJ2VkIG9uIHRoZSBt
YWluIHRocmVhZC4KKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92
ZShwcm90ZWN0ZWRUaGlzKV0geyB9KTsKKworICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBi
ZSBhbHJlYWR5IGRlc3Ryb3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBh
Y2Nlc3MgInRoaXMiLgorICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgQXVkaW9X
b3JrbGV0VGhyZWFkOjpydW5FdmVudExvb3AoKQoreworICAgIC8vIERvZXMgbm90IHJldHVybiB1
bnRpbCB0ZXJtaW5hdGVkLgorICAgIG1fcnVuTG9vcC5ydW4obV93b3JrbGV0R2xvYmFsU2NvcGUu
Z2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0VGhyZWFkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI4ZGJlMjczMTAzMWJjYTUyNzg4MDEzNDZj
NWFkY2Y0Y2VhMGJmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CisKK3N0cnVj
dCBXb3JrbGV0UGFyYW1ldGVycyB7CitwdWJsaWM6CisgICAgVVJMIHdpbmRvd1VSTDsKKyAgICBK
U0M6OlJ1bnRpbWVGbGFncyBqc1J1bnRpbWVGbGFnczsKKworICAgIFdvcmtsZXRQYXJhbWV0ZXJz
IGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFkIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRocmVhZD4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVhdGUoY29uc3QgV29ya2xl
dFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1bkxv
b3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdldCgp
OyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0IFdv
cmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIHZvaWQg
d29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAgV29y
a2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJz
OworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFsU2Nv
cGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jazsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVE
SU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUzMDMwN2QyMTA5NDRmM2U2
Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2QxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAg
LTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwogICAgICwgbV9sb2dnZXIo
ZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRp
ZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKSkK
KyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAgLCBt
X21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7CiAgICAgLy8gQWNjb3Jk
aW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZpZ2F0
ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0
KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscwogICAgICwgbV9s
b2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9n
SWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3JrbGV0OjpjcmVh
dGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1bWVudCkpCiAg
ICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVuZGVy
VGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaWRsCmluZGV4IGRmOTM1YTQwOGY0Y2IwNDNhN2Q4OTdkYjYzNzNiNDE0Nzdk
OGQ3NDguLjZjNTVlNmRlMWRiYjQ4YjhkMDUyYjAzMzdjYjA5MTRkOTYwNTA5YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmlk
bApAQCAtNDIsNyArNDIsNyBAQAogICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRvIHRo
aXMgbGlzdGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlzdGVu
ZXI7CiAKLSAgICBbU2FtZU9iamVjdCwgU2VjdXJlQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGluZz1B
dWRpb1dvcmtsZXRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1dvcmtsZXQgYXVkaW9Xb3JrbGV0
OworICAgIFtTYW1lT2JqZWN0LCBTZWN1cmVDb250ZXh0LCBFbmFibGVkQXRSdW50aW1lPUF1ZGlv
V29ya2xldF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvV29ya2xldCBhdWRpb1dvcmtsZXQ7CiAK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0U3RhdGUgc3RhdGU7CiAgICAgYXR0
cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCmluZGV4IDc1MWRlOTE4Y2UxZGMzNmExYzc5ZTk1MDNjOTI4ZjRmODlmMDk2YmMuLmFl
MzRmZmJhMjNjZGExNmNkOWFhNzQ2MGU3YTg3MmU3OTgyMTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAKQEAgLTMwLDEwICszMCwxMyBAQAogCiAjaW5jbHVkZSAiQXVkaW9Db250
ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvV29y
a2xldC5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtOTksMTggKzEwMiwzMCBAQCB2
b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkKQogICAgICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9uLgog
ICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICAgICAgY3JlYXRlRGVz
dGluYXRpb24oKTsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAg
ICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24o
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKK0Z1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
RnVuY3Rpb24oKQoreworICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBjb250ZXh0KCkuYXVk
aW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICByZXR1cm4gW3dvcmtsZXRQcm94eSA9IG1h
a2VSZWYoKndvcmtsZXRQcm94eSldKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgeworICAg
ICAgICAgICAgd29ya2xldFByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29w
ZShbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAgcmV0
dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlOjpzdGFydFJlbmRlcmluZygpCiB7CiAgICAgQVNTRVJUKGlzSW5pdGlhbGl6ZWQoKSk7CiAg
ICAgaWYgKCFpc0luaXRpYWxpemVkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9OwogCi0gICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICBtX2Rl
c3RpbmF0aW9uLT5zdGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAg
cmV0dXJuIHsgfTsKIH0KIApAQCAtMTE4LDcgKzEzMyw3IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpyZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAg
ICBBU1NFUlQoaXNJbml0aWFsaXplZCgpKTsKICAgICBpZiAoaXNJbml0aWFsaXplZCgpKQotICAg
ICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFy
dChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgY29udGV4dCgpLnBvc3RU
YXNrKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIApAQCAtMTYzLDcgKzE3OCw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2V0Q2hhbm5lbENvdW50KHVu
c2lnbmVkIGNoYW5uZWxDCiAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAgICAg
ICAgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOwogICAgICAgICBjcmVhdGVEZXN0aW5hdGlvbigpOwot
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICBtX2Rlc3RpbmF0aW9uLT5z
dGFydChkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24oKSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGVkZTE1MzNjMTY0ODI5Y2Yx
ZTIzYmE5M2MyOWE4ODYzNDIwM2U0ZDIuLjdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQyMDA1
YjQzZGU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDcsNiArNDcsOCBAQCBw
cml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVk
aW9Db250ZXh0JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0aW9u
KCk7CiAKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IGRpc3BhdGNoVG9S
ZW5kZXJUaHJlYWRGdW5jdGlvbigpOworCiAgICAgdm9pZCBpbml0aWFsaXplKCkgZmluYWw7CiAg
ICAgdm9pZCB1bmluaXRpYWxpemUoKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRD
aGFubmVsQ291bnQodW5zaWduZWQpIGZpbmFsOwpAQCAtNjEsNyArNjMsNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNQ
bGF5aW5nKCkgZmluYWw7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4g
bV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlv
bjsKICAgICBTdHJpbmcgbV9pbnB1dERldmljZUlkOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzIHsgMCB9OwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBmYWEzMzY1MmVkYjM3NjNiMzljMWY2YmI0N2Y2
YmIyNGZhMDNjNDIwLi41M2I1NTQxM2U5MjYxYjc3MGVmN2FjM2JhYWQ2ZDg2ZTBjODI5ZWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC0zMSw3ICszMSwxMCBAQAogI2luY2x1
ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVk
aW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRlci5o
IgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgpAQCAtOTYsOSArOTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0cnVl
OwogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwogCi0gICAgLy8gRklY
TUU6IFNob3VsZCB3ZSBjYWxsIGxhenlJbml0aWFsaXplIGhlcmU/Ci0gICAgLy8gRklYTUU6IFdl
IHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgd2UgY3JlYXRlIGZv
ciBvZmZsaW5lIGF1ZGlvLgotICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIm9m
ZmxpbmUgcmVuZGVyZXIiLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyldKCkgbXV0YWJsZSB7CisgICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKCkgbXV0YWJsZSB7CiAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gb2ZmbGluZVJlbmRlcigpOwogICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzLCByZXN1bHQsIGN1cnJlbnRTYW1wbGVGcmFtZSA9IG1fY3VycmVudFNhbXBsZUZy
YW1lLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewogICAgICAgICAg
ICAgbV9zdGFydGVkUmVuZGVyaW5nID0gZmFsc2U7CkBAIC0xMTQsNyArMTE1LDE3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmco
KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKLSAg
ICB9LCBUaHJlYWRUeXBlOjpBdWRpbyk7CisgICAgfTsKKworICAgIGlmIChhdXRvKiB3b3JrbGV0
UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkgeworICAgICAgICB3b3Jr
bGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtvZmZUaHJlYWRS
ZW5kZXJpbmcgPSBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyldKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG9mZlRocmVhZFJlbmRlcmluZygpOworICAg
ICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBu
dW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVhdGUgZm9yIG9mZmxpbmUgYXVkaW8uCisgICAgbV9yZW5k
ZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFdURk1vdmUob2Zm
VGhyZWFkUmVuZGVyaW5nKSwgVGhyZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggOTVjYzEwODU1ZDhiYWZlZDdhNDUzYzRiZTlmNGQ5MmRlMjQ1
MzdiYi4uYzdlY2ZkZDE1NWM1MjgwZDU4NTRiZmI1MmJlYmVhMDI4NGFkYjdhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTIwNSw3ICsyMDUsMTAgQEAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3Np
bmdFdmVudC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNw
cAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHku
Y3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCitNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAogTW9kdWxlcy93
ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcApAQCAtMjU3OSw2ICsyNTgyLDcgQEAgd29ya2xl
dHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0LmNwcAogd29y
a2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcAogd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwCiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogeG1s
L0RPTVBhcnNlci5jcHAKQEAgLTI2ODAsNiArMjY4NCw3IEBAIEpTQXVkaW9UaW1lc3RhbXAuY3Bw
CiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1dvcmtsZXQu
Y3BwCitKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogSlNBdWRpb1dvcmtsZXROb2RlLmNw
cAogSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5jcHAKIEpTQXV0aGVudGljYXRpb25FeHRlbnNp
b25zQ2xpZW50SW5wdXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzNTJkYjNjMjEwY2VhY2U1Mjk5MTg2OGVjYjBjYjcz
NjM1Y2ZlZDAuLmIwYzI5NzBmNWFjZGY5ZTIzMzBlYmY4ZDdhOTQwMTJkNWU2MDMzODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI0NTEsNiArMjQ1MSwxMCBAQAogCQk4MzNCOUUzMjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlFbnRyeS5oICovOyB9OwogCQk4MzNCOUUzNDFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxl
U3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzM0I5RTJBMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5oICovOyB9
OwogCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUyQzFG
NTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggKi87IH07CisJCTgzM0JE
ODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCRDgxMzI1MjRENEUyMDA2RTcy
QjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovOyB9OworCQk4MzNCRDgxODI1MjRENEY1MDA2
RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBXb3Jr
bGV0R2xvYmFsU2NvcGVQcm94eS5oICovOyB9OworCQk4MzNCRDgxRDI1MjRENTMwMDA2RTcyQjMg
LyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oICovOyB9OworCQk4MzNCRDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzM0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eS5oICovOyB9OwogCQk4MzNEMUM3NjI0RDhENTRGMDBFODEzREYgLyogV2Vi
S2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzNEMUM3MzI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmggKi87IH07CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBW
aXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5n
ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzNDNEOTg0MjREMERFRTkwMDlBQkQ0OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0M0Q5ODEyNEQw
REVBOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmggKi87IH07CkBAIC0yNTA4LDYg
KzI1MTIsNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oICov
OyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUwQjYz
ODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZGQTAw
RTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5
c3RlbS5oICovOyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdl
YkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZF
RDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBI
VE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyogSUlS
RmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNTM1LDYg
KzI1NDAsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RF
dmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQu
aCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RF
dmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdl
dC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1
MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IH07CisJCTgzRDZBQUU2MjUyNEVF
MUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRC
IC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjREQTE5
NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAq
LzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlBMDFC
QjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI1NDQsNiAr
MjU1MCw3IEBACiAJCTgzRkIzMzcxMUY1MDhBNTQwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0
b3J5RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCAq
LzsgfTsKIAkJODNGQjMzNzMxRjUwOEE1ODAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkYxRjUw
OEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1FbnRyeS5oICovOyB9OwogCQk4M0ZCMzM3NTFGNTA4
QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGQjMzNkMxRjUwOEE0RTAwOTg2RTU0IC8qIEZp
bGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJODNGQzk5NEIyNTI1NTdFQTAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVh
ZC5oICovOyB9OwogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0MURB
OUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBFdmVu
dE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkwMjcx
RTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5IC8q
IFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwpAQCAtMTA1NzgsNiArMTA1ODUsMTMgQEAKIAkJ
ODMzQjlFMkQxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1GaWxlRW50cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNCOUUyRTFGNTA4RDgwMDBFMEU0
MjggLyogSlNGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNGaWxlU3lzdGVtRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlU3lzdGVtRGlyZWN0
b3J5RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTMyNTI0RDRF
MjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4MzNCRDgxNTI1MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rh
c2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTYyNTI0RDRFMzAw
NkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzM0JEODE5MjUyNEQ1MUIwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQTI1MjRE
NTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODMzQkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvV29ya2xl
dE1lc3NhZ2luZ1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzQ0Y3
MEYyMERCM0Y1RjAwMTQxQkNDIC8qIEpTUGVyZm9ybWFuY2VPYnNlcnZlckN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzNEMUM3MzI0RDhENTMz
MDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzNEMUM3NTI0RDhENTMzMDBFODEzREYgLyogV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MTgsNyBAQAogCQk4Mzk5NDcwOTFGNTBC
NjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyog
SlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9N
RmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1MjRG
Mzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3
RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdC
UkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFdC
UkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiArMTA3
NjcsNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2
ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1MTFG
MzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmlx
dWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5RTBD
MjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJp
cXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlFMEQy
NERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVhZEZp
bHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEsNiAr
MTA4MDcsOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURpcmVj
dG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2RTFG
NTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2
MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xldFRo
cmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4MDAx
Nzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlv
V29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0Ez
MURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2MSw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0
ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtl
ci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRC
cmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4ICsx
NzU3NSw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCAq
LywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8s
CiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywKLQkJ
CQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICov
LAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5o
ICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRlci5j
cHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVy
LmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRy
eS5oICovLApAQCAtMTg3MjAsNiArMTg3MzksOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0YwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQyNTI0
RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJODM5
QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJv
eHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5j
cHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCAq
LywKQEAgLTE5NzM4LDggKzE5NzU5LDExIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJERkNE
IC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAwNTJE
RkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIwMDUy
REZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0RTMw
MDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEwMjUy
MjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUyMjlF
MDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJCQkJODMzQkQ4MTUyNTI0RDRF
MjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEzMjUy
NEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEzMjky
MTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJCQk0
QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLywK
IAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODIsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBFMDBB
OTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBBOTM5
RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8qIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1N0U3
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODFD
MjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8sCisJ
CQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUu
Y3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2Rl
LmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUu
aWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dvcmts
ZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8qIEF1
ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIwNSAv
KiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBCMDUg
LyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIwNSAv
KiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDggKzMwNDk4LDExIEBACiAJCQkJ
MDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAwNkU3
MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNC
RDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyogQXVk
aW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUyNTU3
RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdF
RTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAwQjc5
NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcyLDYg
KzMxODA2LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElu
bGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8q
IElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3ODM5
N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTUsNiBAQAogCQkJ
CUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29u
dGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZF
MiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEyNTE1
MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICov
LApAQCAtMzQ1OTUsNiArMzQ2MjksOCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlENiAv
KiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0Iw
NTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdGMDBF
RUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVu
TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8qIFdv
cmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0NSw5IEBA
CiAJCQkJNEJERUEzMjAyMTdFQzU1RjAwNTJERkNEIC8qIFdvcmtsZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTRCN0Y5QzUyMjE4M0I1RTUwMDFDRUJBMCAvKiBXb3JrbGV0Q29uc29sZUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNEJERUEzMjUyMTdGRTJFNDAwNTJERkNEIC8qIFdvcmtsZXRH
bG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3MkIz
IC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0FDRDAx
MzI1MjI5RTEwMDAwRDEyNEUgLyogV29ya2xldE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4MSAv
KiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IGIxNGI4MTU0MmRiODg5ZWM2ZDI1OWJjNWI3MGVm
MmE1MDk5Yzk2ZDEuLjMyM2RlZTc4ZDhiYmVjOWVjZWUxNTZiOTMzZWFkMDg2MTQxOTdhOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlO
VElOR19BUEkpCi0KICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdFRhc2suaCIKICNpbmNsdWRlICJKU0RPTUd1YXJkZWRPYmplY3QuaCIKQEAg
LTE1MSw0ICsxNDksMyBAQCBKU1dvcmtsZXRHbG9iYWxTY29wZSogdG9KU1dvcmtsZXRHbG9iYWxT
Y29wZShWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0
R2xvYmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2UuaAppbmRleCA4ZmVmOTIwMWZlZGMzNjFlOTI1Y2M4MDYyZjJjZjI2ZGEz
MWNlYzYwLi5iOGExN2VjNGU3ZTJmYWNjYmU4NDY3NGNhMDE0ZDEzNWJlNzA1OWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UuaApAQCAtMjYsOCArMjYsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1Nf
UEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCkBAIC04OCw1ICs4
NiwzIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBXb3JrbGV0R2xvYmFsCiBKU1dvcmtsZXRHbG9iYWxTY29wZSogdG9K
U1dvcmtsZXRHbG9iYWxTY29wZShKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19QQUlOVElOR19BUEkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXgg
NjJiMGQ2ZDU0YTRmMDAwMmRlZTRiZDJkZmM3ZWM2ZWQxMzdkODQ2OC4uYjNhOGQ1YjEzYzQ1MTFj
Zjc4NDI1NzU5ZDYwNTE0ODExMTQ5MGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oQXVkaW9MaXN0ZW5lcikgXAogICAgIG1hY3JvKEF1ZGlvUGFy
YW1NYXApIFwKICAgICBtYWNybyhBdWRpb1dvcmtsZXQpIFwKKyAgICBtYWNybyhBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldE5vZGUpIFwKICAgICBtYWNy
byhBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNybyhBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAppbmRleCAzOGRmNjc3NTJlOTBhNmEyZTAxNzRj
ZmFmYmM0Zjg3MWVhODFjMTRhLi4wNzY2MDgzODA3NGUyNmViZjQzMWQ1MWE5YWYzMTAxOWM1OWEw
NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGll
bnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGll
bnREYXRhLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRE9NR0NPdXRwdXRDb25z
dHJhaW50LmgiCiAjaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiSlNBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFzZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93
LmgiCkBAIC02OCw5ICs2OSwxMiBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNsaWVudERhdGEoVk0m
IHZtKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVhcENlbGxUeXBlRm9y
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxK
U1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgorICAgICwgbV9oZWFwQ2VsbFR5
cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpT
V29ya2xldEdsb2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAg
ICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVh
cENlbGxUeXBlOjpjcmVhdGU8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZT4oKSkKLSAgICAsIG1f
aGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6
OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJf
QVVESU8pCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigp
KQogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLCBtX2hlYXBDZWxs
VHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdChKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6Y3JlYXRlPEpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdD4oKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA4M2I4MjM0
YzMzNWRlZDE0NTBkMTgxM2ZlODQyOTdhOTc1ODM4OTUxLi5iODQ0MGU4NzcwZTQ3MjkxZjdlZTIw
NjMxOTllYTA1YzNjNGJiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC05OSw5ICs5OSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlw
ZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKICNlbmRpZgor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JK
U1dvcmtsZXRHbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5
cGU+IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGU7CisjZW5kaWYKKyNpZiBF
TkFCTEUoV0VCX0FVRElPKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4g
bV9oZWFwQ2VsbFR5cGVGb3JKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOwogI2VuZGlmCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENl
bGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaAppbmRleCBkMGE1NDdhYzU2NzM5ZmRkZTFlNzBlOGVjMTliMmI0ODg1ZWI1NjA5Li5lMzkw
MTgwZjU3MWY5ZTFlMzViYzkyM2IxZDc3MWQ0Yjk1Y2VkYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNiw2ICsy
Niw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgU2NyaXB0U291cmNlQ29k
ZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsK
IAotY2xhc3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciB7CitjbGFzcyBXb3JrZXJTY3JpcHRDb250
cm9sbGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtlckds
b2JhbFNjb3BlKik7CkBAIC02Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBmb3JiaWRFeGVj
dXRpb24oKS9pc0V4ZWN1dGlvbkZvcmJpZGRlbigpIHRvIGd1YXJkIGFnYWluc3QgcmVlbnRyeSBp
bnRvIEpTLgogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgogICAgIHZvaWQg
c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOwotICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4
ZWN1dGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0
IGZpbmFsOwogCiAgICAgLy8gQ2FsbGVkIG9uIFdvcmtlciB0aHJlYWQgd2hlbiBKUyBleGl0cyB3
aXRoIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiBjYXVzZWQgYnkgZm9yYmlkRXhlY3V0aW9uKCkgcmVx
dWVzdCwKICAgICAvLyBvciBieSBXb3JrZXIgdGhyZWFkIHRlcm1pbmF0aW9uIGNvZGUgdG8gcHJl
dmVudCBmdXR1cmUgZW50cnkgaW50byBKUy4KQEAgLTc5LDExICs4MCwxMSBAQCBwdWJsaWM6CiAK
ICAgICBKU0M6OlZNJiB2bSgpIHsgcmV0dXJuICptX3ZtOyB9CiAgICAgCi0gICAgdm9pZCByZWxl
YXNlSGVhcEFjY2VzcygpOwotICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKTsKKyAgICB2b2lk
IHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2Vzcygp
IGZpbmFsOwogCi0gICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9v
cFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKLSAgICB2b2lkIHJlbW92ZVRpbWVy
U2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2Fs
bGJhY2spOworICAgIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BU
aW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVU
aW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlv
bkNhbGxiYWNrKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dl
ciopOwogICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAx
MGYzZTY2ODY2NTQ1YTVhNjBhOWVlNWE5Zjg2NzRhZTNjMjg0OTMyLi41OGZkMWE3YTI2ZmRkMWRh
YzRkYjJiNzBiMWM1NDUzNzViY2Q0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzc1LDcgKzc3NSw3IEBAIHN1YiBT
aG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKIAogICAgICMgRm9yIHdvcmtlcnMsIHRoZSBn
bG9iYWwgb2JqZWN0IGlzIGEgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgcmV0dXJu
IDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiOwotICAg
ICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50V29ya2xldEdsb2Jh
bFNjb3BlLgorICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50
V29ya2xldEdsb2JhbFNjb3BlIG9yIGEgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuCiAgICAgcmV0
dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2xldEdsb2JhbFNjb3BlIjsK
IAogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKaW5kZXggYmVl
MGZjNTA2OTE5ZmNjZmQxNzVmNjljYzUyM2M1NzU2YmMwOGE4OC4uZjRjODRiYzg4YzQxMTQ1ZGQx
NmVkMzgzZDRkMzljNDJjYzVkNjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAgLTQ3LDYgKzQ3LDcgQEAgbXkgJGRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGU7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
OworbXkgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICR0ZXN0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVw
czsKIG15ICRpZGxBdHRyaWJ1dGVzRmlsZTsKQEAgLTY5LDYgKzcwLDcgQEAgR2V0T3B0aW9ucygn
ZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGU9cycgPT4gXCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAg
ICAgICAncGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAorICAgICAgICAgICAnYXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkYXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAndGVzdEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZT1zJyA9PiBcJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAg
ICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM9cycgPT4gXCRzdXBwbGVtZW50YWxN
YWtlZmlsZURlcHMsCiAgICAgICAgICAgICdpZGxBdHRyaWJ1dGVzRmlsZT1zJyA9PiBcJGlkbEF0
dHJpYnV0ZXNGaWxlLApAQCAtODMsNiArODUsNyBAQCBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRw
dXQgZmlsZSB1c2luZyAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRgog
ZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxl
c3MgZGVmaW5lZCgkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011
c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVz
aW5nIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBk
ZWZpbmVkKCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdN
dXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKSB8fCAhZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKIGRpZSgnTXVzdCBzcGVj
aWZ5IHRoZSBmaWxlIGxpc3RpbmcgYWxsIElETHMgdXNpbmcgLS1pZGxGaWxlTmFtZXNMaXN0Licp
IHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlTmFtZXNMaXN0KTsKIGRpZSgnTXVzdCBzcGVjaWZ5IElE
TCBhdHRyaWJ1dGVzIGZpbGUgdXNpbmcgLS1pZGxBdHRyaWJ1dGVzRmlsZS4nKSB1bmxlc3MgZGVm
aW5lZCgkaWRsQXR0cmlidXRlc0ZpbGUpOwpAQCAtOTUsNiArOTgsNyBAQCAkZGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRkZWRp
Y2F0ZWRXb3JrZQogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZO
ZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogJHBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRhdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGF1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzID0g
Q3lnd2luUGF0aElmTmVlZGVkKCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmluZWQo
JHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyk7CiAKIG15IEBpZGxGaWxlTmFtZXM7CkBAIC0xMzUs
NiArMTM5LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAi
IjsKIG15ICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CitteSAkYXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkdGVzdEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogCiBteSAkaXNvU3Vic3BhY2VzSGVhZGVyQ29kZSA9IDw8
RU5EOwpAQCAtMjM3LDYgKzI0Miw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtl
eXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3b3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNp
ZiAoJGdsb2JhbENvbnRleHQgZXEgIlBhaW50V29ya2xldCIpIHsKICAgICAgICAgICAgICAgICAk
cGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2Rl
OworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkF1ZGlvV29ya2xldCIp
IHsKKyAgICAgICAgICAgICAgICAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRl
eHQgZXEgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICR0ZXN0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAg
fSBlbHNlIHsKQEAgLTI1NCw2ICsyNjEsNyBAQCBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjbwogR2Vu
ZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAkc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJXb3JrbGV0
R2xvYmFsU2NvcGUiLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNl
KCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0NvZGUsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwor
R2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSIsICRhdWRp
b1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRhdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCR0ZXN0R2xv
YmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkdGVzdEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRleHRO
YW1lKTsKIAogaWYgKCRpc29TdWJzcGFjZXNIZWFkZXJGaWxlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGRhZTEx
MDdkMzM0YmM4ZjQzZGYyZjRmN2U4NGE5ODNjMzVkNjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDIgQEAKK3BhcnRpYWwgaW50ZXJmYWNlIEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1
OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdl
bmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRy
eWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkg
YnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBjZjEx
YmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgKQEAg
LTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1
aWxkIHNjcmlwdHMgdGhhdCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgg
YW5kCisgICAgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgd2VyZSBj
cmVhdGVkIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwsIGFuZCBw
cmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0ZSBK
U0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpTQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKaW5kZXggMTM2ZTRmMTRlY2ZlNWU0Yjlm
OWM5NTIwMjc0MzlhNGEzMWQ0OTY0NS4uNmEwZTE5NjY0NTQyZTgxNjgxYzdhNjk3ZWNjNzExNWI3
YTRkZmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01DU1NOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVk
ZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsMTEgKzU3LDE4IEBAIGNvbnN0IGNo
YXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiRE9N
Q1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYm
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorLy8gRklYTUU6IEdldCByaWQg
b2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUgc3RhbmRhcmQtY29tcGxpYW50IFdvcmts
ZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxlKGNv
bnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1l
bnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRhY2hlZCJfcyB9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG93bmxv
YWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0byBtYXliZUNvbnRleHQgPSBQYWludFdv
cmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRTb3VyY2VDb2RlKG1v
ZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9kdWxlVVJMKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTcw
LDkgKzc4LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xlCiAKICAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CiAgICAgZm9yIChhdXRv
JiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9uTWFwKCkua2V5cygpKQotICAgICAgICBk
b2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihj
b250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50LT5zZXRQYWludFdvcmtsZXRHbG9iYWxT
Y29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CiAgICAgcHJvbWlzZS5y
ZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBQYWlu
dFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7CisgICAgLy8gRklYTUU6IEFkZCBpbXBs
ZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBiOWIxMzg1YmIwOGEzZjFjZWQ0ZWIyYjQy
NDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIyMDQ4MjIzZjJjMWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCkBAIC00MSwxNSArNDEs
MjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBjbGFzcyBQYWludFdvcmtsZXQgZmluYWwg
OiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+
IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWludFdvcmts
ZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IFBhaW50V29ya2xldChk
b2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICAgICAg
cmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmtsZXQuCisgICAgdm9pZCBhZGRNb2R1bGUo
Y29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVBy
b3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgUGFpbnRX
b3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhaW50V29ya2xldChEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1bWVudCkKKyAgICB7IH0KIH07CiAKIGNs
YXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05h
bWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmFjZjNmMThjYWRjNjg2YjMx
ZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMzZmIzMmMxN2QwZTlm
YmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDM5LDcgKzg0MzksNyBAQCBE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50OjpkZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5zdXJlUGFp
bnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRXb3JrbGV0KQotICAgICAgICBtX3BhaW50
V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGFpbnRXb3JrbGV0
ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wYWludFdvcmts
ZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rv
cnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDVk
ZTAxN2M4YjE1NzA0Yjg3ZjgxYzg1NGJiYzQ3NzA2MmJjZGExMmMuLjMwMTcxMDA0NGZmMTNhMTRj
MDIyOGRhMzg5MDJkM2U3ZDMzNzdjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbgpAQCAtNTUsNyArNTUsNyBAQCBXZWJHUFVEZXZpY2UgY29uZGl0aW9uYWw9V0VC
R1BVCiBXZWJLaXRNZWRpYUtleVNlc3Npb24gY29uZGl0aW9uYWw9TEVHQUNZX0VOQ1JZUFRFRF9N
RURJQQogV2ViU29ja2V0CiBXb3JrZXIKLVdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1D
U1NfUEFJTlRJTkdfQVBJCitXb3JrbGV0R2xvYmFsU2NvcGUKIFhNTEh0dHBSZXF1ZXN0CiBYTUxI
dHRwUmVxdWVzdFVwbG9hZAogV2ViWFJMYXllciBjb25kaXRpb25hbD1XRUJYUgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAwNmEzZWM5MDY1NTgy
NmZiY2Q5MWE4M2I2NDFlMjdmNTllNzVkZTYwLi5hZWI1ODNjYTRiMmFlMjEzMzBhZTM0OTgzOTVi
YjY1ODMwZTA0OTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaApAQCAtMTI3LDYgKzEyNywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjc3NQYWludGlu
Z0FQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX0NTU1BhaW50aW5nQVBJRW5hYmxlZDsgfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZvaWQgc2V0QXVkaW9Xb3JrbGV0
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2F1ZGlvV29ya2xldEVuYWJsZWQgPSBpc0VuYWJs
ZWQ7IH0KKyAgICBib29sIGF1ZGlvV29ya2xldEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2F1
ZGlvV29ya2xldEVuYWJsZWQ7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkK
ICAgICB2b2lkIHNldENTU1R5cGVkT01FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fQ1NTVHlw
ZWRPTUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNzc1R5cGVkT01FbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9DU1NUeXBlZE9NRW5hYmxlZDsgfQpAQCAtMzAyLDYgKzMwNyw5IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgYm9vbCBtX0NTU1Bh
aW50aW5nQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KQorICAgIGJvb2wgbV9hdWRpb1dvcmtsZXRFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAj
aWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICBib29sIG1fQ1NTVHlwZWRPTUVuYWJsZWQgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDBlMDllNWIxNzFlNjdjMGQy
NTQ0OTY3OGZmYTk4MDQxMTNmNmRhOGMuLmFiNGQ5NmUxMTEyMGM0YmYzNWE2YTkyM2E5ZWNiMjVm
Njk1MzljMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTI1OSw4ICsyNTksNiBA
QCBwcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIG1vZGVyblVucHJl
Zml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCi1hdWRpb1dvcmtsZXRFbmFi
bGVkOgotICBpbml0aWFsOiBmYWxzZQogcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQogZnVsbFNjcmVlbkVuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVN0cmF0ZWd5LmgKaW5kZXggNDNkNTc2NTI5OGMwNjc5MmM2ZGRjZTg1YzQyYTBhM2Y1NzVh
ODc4My4uOTg1MjA1ZGFiYWFiOGRhMzg2ZjY1NjRkODA5NmZkMjg2NTVjMWExMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3Qg
Tm93UGxheWluZ0luZm87CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKIHB1
YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCisgICAgdmlydHVhbCBS
ZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAgQXVk
aW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpID0gMDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCmluZGV4IGRlYjc1
N2RjNDVlNTc4NTg1MjE3ZmQzYmVjMDcxMmI2NDRkNzUzNzQuLjE2MGM2NTc4ZTE1ZWQ1ZWE3NTI1
ZGM3NjhiZDRlZjNmZGM3NGY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgQXVkaW9E
ZXN0aW5hdGlvbl9oCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQwLDE2ICs0MSwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7
CiAvLyBUaGUgYXVkaW8gaGFyZHdhcmUgcGVyaW9kaWNhbGx5IGNhbGxzIHRoZSBBdWRpb0lPQ2Fs
bGJhY2sgcmVuZGVyKCkgbWV0aG9kIGFza2luZyBpdCB0byByZW5kZXIvb3V0cHV0IHRoZSBuZXh0
IHJlbmRlciBxdWFudHVtIG9mIGF1ZGlvLgogLy8gSXQgb3B0aW9uYWxseSB3aWxsIHBhc3MgaW4g
bG9jYWwvbGl2ZSBhdWRpbyBpbnB1dCB3aGVuIGl0IGNhbGxzIHJlbmRlcigpLgogCi1jbGFzcyBB
dWRpb0Rlc3RpbmF0aW9uIHsKK2NsYXNzIEF1ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8QXVkaW9EZXN0aW5hdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+
IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNw
ZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBp
bnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25l
ZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8QXVkaW9E
ZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlv
RGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzUGxheWluZygpID0gMDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRp
b25Db2NvYS5jcHAKaW5kZXggNzRhZDYxNmZhOWUyNWRlYjk5OWM5NmI2NjdlZDE0OTQ3MGJmNjg3
Mi4uZGE0ZTRiMmM4YjYwNzM0ODNmOWZhZGM2N2JhZmJmZmY4Njg1ZjlhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIGNvbnN0ZXhwciBzaXplX3QgZmlmb1Np
emUgPSA5NiAqIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKIAogQ3JlYXRlQXVk
aW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVP
dmVycmlkZSA9IG51bGxwdHI7CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRpb24+
IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IG1h
a2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTU1LDcgKzU1LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAoQXVkaW9EZXN0aW5hdGlvbkNvY29h
OjpjcmVhdGVPdmVycmlkZSkKICAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
Y3JlYXRlT3ZlcnJpZGUoY2FsbGJhY2ssIHNhbXBsZVJhdGUpOwogCi0gICAgYXV0byBkZXN0aW5h
dGlvbiA9IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgYXV0byBkZXN0aW5hdGlvbiA9IGFk
b3B0UmVmKCpuZXcgQXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxiYWNrLCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7CiAgICAgZGVzdGluYXRpb24tPmNvbmZpZ3VyZSgpOwog
ICAgIHJldHVybiBkZXN0aW5hdGlvbjsKIH0KQEAgLTEwMyw5ICsxMDMsMTAgQEAgdW5zaWduZWQg
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpmcmFtZXNQZXJCdWZmZXIoKSBjb25zdAogICAgIHJldHVy
biBtX3JlbmRlckJ1cy0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29h
OjpzdGFydCgpCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CiAgICAg
TE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCIpOworICAgIG1fZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAg
T1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRVbml0KTsKIAog
ICAgIGlmICghcmVzdWx0KQpAQCAtMTE2LDYgKzExNyw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpzdG9wKCkKIHsKICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OnN0b3AiKTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0
cHV0VW5pdCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gbnVsbHB0cjsKIAogICAg
IGlmICghcmVzdWx0KQogICAgICAgICBzZXRJc1BsYXlpbmcoZmFsc2UpOwpAQCAtMTIzLDYgKzEy
NSw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIAogdm9pZCBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxheWluZykKIHsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1faXNQbGF5aW5nTG9jayk7CiAgICAgaWYgKG1faXNQbGF5aW5n
ID09IGlzUGxheWluZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMsMTggKzE3NiwzOCBAQCBP
U1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVTdGFt
cCogdGltZXN0YW1wLCBVSW50MzIgbgogCiAgICAgLy8gQXNzb2NpYXRlIHRoZSBkZXN0aW5hdGlv
biBkYXRhIGFycmF5IHdpdGggdGhlIG91dHB1dCBidXMgdGhlbiBmaWxsIHRoZSBGSUZPLgogICAg
IGFzc2lnbkF1ZGlvQnVmZmVyc1RvQnVzKGJ1ZmZlcnMsIG1fb3V0cHV0QnVzLmdldCgpLCBudW1i
ZXJPZkJ1ZmZlcnMsIG51bWJlck9mRnJhbWVzLCAwLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgc2l6
ZV90IGZyYW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0cHV0QnVzLnB0cigpLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyOwogCisgICAgeworICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOworICAgICAgICBmcmFtZXNUb1Jl
bmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOwor
ICAgIH0KKworICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRl
cmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgorICAgIGlmIChtX2Rpc3BhdGNoVG9SZW5k
ZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lc1RvUmVuZGVyXSgpIG11dGFibGUgewor
ICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faXNQbGF5aW5nTG9jaywg
c3RkOjp0cnlfdG9fbG9jayk7CisgICAgICAgICAgICBpZiAobG9jay5vd25zX2xvY2soKSAmJiBt
X2lzUGxheWluZykKKyAgICAgICAgICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1l
c1RvUmVuZGVyKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlbmRlck9uUmVu
ZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOworCisgICAgcmV0dXJuIG5vRXJyOworfQorCisv
LyBUaGlzIHJ1bnMgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBp
cyBlbmFibGVkLCBvbiB0aGUgYXVkaW8gZGV2aWNlJ3MgcmVuZGVyaW5nIHRocmVhZCBvdGhlcndp
c2UuCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVhZChz
aXplX3QgZnJhbWVzVG9SZW5kZXIpCit7CiAgICAgZm9yIChzaXplX3QgcHVzaGVkRnJhbWVzID0g
MDsgcHVzaGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hlZEZyYW1lcyArPSBBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpIHsKICAgICAgICAgaWYgKG1fcmVzYW1wbGVyKQog
ICAgICAgICAgICAgbV9yZXNhbXBsZXItPnByb2Nlc3ModGhpcywgbV9yZW5kZXJCdXMucHRyKCks
IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIAorICAgICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOwogICAgICAgICBtX2ZpZm8tPnB1c2go
bV9yZW5kZXJCdXMucHRyKCkpOwogICAgIH0KLQotICAgIHJldHVybiBub0VycjsKIH0KIAogLy8g
RGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKaW5kZXggMDBk
ZGEyZmIyYTM3YjgzZjEwZWZhNTI3MWIxNzY4YTgwYjQ4MTFlYy4uMDg5NGQ2MjFhMmYxNTMyMjUx
MjczNjUwYjZlNWEzZDNlYzk5NmY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTQwLDcg
KzQwLDcgQEAgY2xhc3MgQXVkaW9CdXM7CiBjbGFzcyBNdWx0aUNoYW5uZWxSZXNhbXBsZXI7CiBj
bGFzcyBQdXNoUHVsbEZJRk87CiAKLXVzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92
ZXJyaWRlID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxs
YmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwordXNpbmcgQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNv
Y29hT3ZlcnJpZGUgPSBSZWY8QXVkaW9EZXN0aW5hdGlvbj4oKikoQXVkaW9JT0NhbGxiYWNrJiwg
ZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIC8vIEFuIEF1ZGlvRGVzdGluYXRpb24gdXNpbmcgQ29yZUF1
ZGlvJ3MgZGVmYXVsdCBvdXRwdXQgQXVkaW9Vbml0CiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIg
ewpAQCAtNjUsMTEgKzY1LDE1IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0QXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwogCisgICAg
RnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJl
YWQ7CisKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3Rh
cnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIHN0b3AoKSBvdmVycmlkZTsKIAotICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9E
ZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNv
bnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQpOworICAgIHZvaWQgcmVuZGVy
T25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpOworCisgICAgZnJpZW5kIFJl
ZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBmbG9hdCk7CiAgICAgCiAg
ICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1
cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwpAQCAtOTEsMTEgKzk1LDE0IEBAIHBy
aXZhdGU6CiAgICAgLy8gUmVzb2x2ZXMgdGhlIGJ1ZmZlciBzaXplIG1pc21hdGNoIGJldHdlZW4g
dGhlIFdlYkF1ZGlvIGVuZ2luZSBhbmQKICAgICAvLyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZnJv
bSB0aGUgYWN0dWFsIGF1ZGlvIGRldmljZS4KICAgICBVbmlxdWVSZWY8UHVzaFB1bGxGSUZPPiBt
X2ZpZm87CisgICAgTG9jayBtX2ZpZm9Mb2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE11bHRp
Q2hhbm5lbFJlc2FtcGxlcj4gbV9yZXNhbXBsZXI7CiAgICAgQXVkaW9JT1Bvc2l0aW9uIG1fb3V0
cHV0VGltZXN0YW1wOwogCiAgICAgZmxvYXQgbV9jb250ZXh0U2FtcGxlUmF0ZTsKKworICAgIExv
Y2sgbV9pc1BsYXlpbmdMb2NrOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IDhmZGViNmEy
NDI0ODQ5Y2FjMTdiYmU5MGFhZTcxMmE4OWEyNGQxMDAuLmMwNWFlNmJlNjI5ZGRiM2RmNjcyMjgy
OTExMWNlOGI2NDAwZWU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZvaWQgYXV0b0F1ZGlvU2lua0NoaWxkQWRk
ZWRDYWxsYmFjayhHc3RDaGlsZFByb3h5KiwgR09iamVjdCogb2JqZWN0LCBnY2gKICAgICAgICAg
Z19vYmplY3Rfc2V0KEdTVF9BVURJT19CQVNFX1NJTksob2JqZWN0KSwgImJ1ZmZlci10aW1lIiwg
c3RhdGljX2Nhc3Q8Z2ludDY0PigxMDAwMDApLCBudWxscHRyKTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2Fs
bGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
CitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSB1c2Ugb2YgaW5wdXREZXZpY2VJZCBhcyBhcHByb3By
aWF0ZS4KIApAQCAtNjAsNyArNjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlv
bj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbAogICAgIGlm
IChudW1iZXJPZk91dHB1dENoYW5uZWxzICE9IDIpCiAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZSgldSwgJXUsICVmKSAtIHVuaGFuZGxlZCBvdXRwdXQgY2hhbm5l
bHMiLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBs
ZVJhdGUpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
cj4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIoY2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsKIH0KIAogZmxvYXQg
QXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkKQEAgLTE2NSw3ICsxNjUsNyBA
QCBnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1l
c3NhZ2UqIG1lc3NhZ2UpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXZvaWQgQXVkaW9EZXN0aW5h
dGlvbkdTdHJlYW1lcjo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpz
dGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpCiB7CiAgICAgQVNTRVJU
KG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKICAgICBpZiAoIW1fYXVkaW9TaW5rQXZhaWxhYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXggY2ZlNjg5MjA4ZDA5Njhh
NTFhOGJiMWQxZTg3ZjZlMTlkMGYyMzE2Ni4uZDU1MTA0Yzg4Y2NiY2RmZmZmOTdjNGU3YTQ5NDk4
NmY5OTZiZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBAIC0z
NCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlv
SU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXIoKTsKIAotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogICAgIGJv
b2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwCmluZGV4IDlkYWE3ZDAxNDFkODEwNGU0ZjVjNGMyNjQ4YmM4YzZiZTUyNmMwYzgu
LjVhMTJjZGU0ZmNkZmM1N2ZhZDQyYjdkOWU4ZmU3MzIwNDM1MDlkNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmNwcApAQCAtNDUsOCArNDUsOSBAQCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpNb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAKIE1vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6On5Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKCkgPSBkZWZh
dWx0OwogCi12b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KCkKK3ZvaWQgTW9j
a0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lk
KCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7CisgICAgbV9kaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKTsKICAgICBtX3RpbWVy
LnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgeyBtX251bWJlck9mRnJhbWVzVG9Qcm9jZXNzIC8gc2Ft
cGxlUmF0ZSgpIH0pOwogICAgIHNldElzUGxheWluZyh0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgK
aW5kZXggZDRlYWU4MzM0MzVjMGE2MDQ1NWVkMGI5NjkyNTY4YzhlYzYzZjM2ZC4uYThkMjhjNGVk
MWJiZWZmZDMzMDk0NTBkYWFmMzI5ZWJhMjUzNGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgKQEAgLTM4
LDEyICszOCwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiBjbGFzcyBNb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb25Db2NvYSB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywg
ZmxvYXQgc2FtcGxlUmF0ZSkgeyByZXR1cm4gbWFrZVVuaXF1ZTxNb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hPihjYWxsYmFjaywgc2FtcGxlUmF0ZSk7IH0KKyAgICBzdGF0aWMgUmVmPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVS
YXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYShjYWxsYmFjaywgc2FtcGxlUmF0ZSkpOworICAgIH0KKwogICAgIFdFQkNPUkVf
RVhQT1JUIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQg
c2FtcGxlUmF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+TW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKKyAgICB2
b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJikgZmluYWw7CiAg
ICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKICAgICB2b2lkIHRpY2soKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmNwcAppbmRleCA3ZGFjYzBkYTQxNDBiMzFhN2ZlNGRk
NjUwOWI5NDYzOWNmNTU0OGRlLi5hNGU3ZGZmZjgyOWJjNzk3NzQzODAyZmYyMGYxZjQ1ODZkMzU0
MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuY3BwCkBAIC0z
NywxMiArMzcsMTAgQEAgUmVmPFdvcmtlckV2ZW50TG9vcD4gV29ya2VyRXZlbnRMb29wOjpjcmVh
dGUoV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V29ya2VyRXZlbnRMb29wKGNvbnRleHQpKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdf
QVBJKQogUmVmPFdvcmtlckV2ZW50TG9vcD4gV29ya2VyRXZlbnRMb29wOjpjcmVhdGUoV29ya2xl
dEdsb2JhbFNjb3BlJiBjb250ZXh0KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtl
ckV2ZW50TG9vcChjb250ZXh0KSk7CiB9Ci0jZW5kaWYKIAogV29ya2VyRXZlbnRMb29wOjpXb3Jr
ZXJFdmVudExvb3AoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyKCZjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyRXZlbnRMb29wLmgKaW5kZXggZGM0ZjQwNDUyZGM3ZTI5MDY4NDljMDVmNjVhYzNjNzc0NDRk
NzFmZi4uMWNkMGVjYjZhMmYzMGU2NjgzN2VkZjczZjdiNDJjMTkyODQ5MDY0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5oCkBAIC0zNywxMCArMzcsNyBAQCBjbGFz
cyBXb3JrZXJFdmVudExvb3AgZmluYWwgOiBwdWJsaWMgRXZlbnRMb29wLCBwcml2YXRlIENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydgogcHVibGljOgogICAgIC8vIEV4cGxpY2l0bHkgdGFrZSBXb3Jr
ZXJHbG9iYWxTY29wZSBhbmQgV29ya2xldEdsb2JhbFNjb3BlIGZvciBkb2N1bWVudGF0aW9uIHB1
cnBvc2VzLgogICAgIHN0YXRpYyBSZWY8V29ya2VyRXZlbnRMb29wPiBjcmVhdGUoV29ya2VyR2xv
YmFsU2NvcGUmKTsKLQotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIHN0YXRpYyBS
ZWY8V29ya2VyRXZlbnRMb29wPiBjcmVhdGUoV29ya2xldEdsb2JhbFNjb3BlJik7Ci0jZW5kaWYK
IAogICAgIHZpcnR1YWwgfldvcmtlckV2ZW50TG9vcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGIyZjMzMTJjZjRiMDQ2MWI4N2ZhYWFj
MzljZDQyYTA2M2U1OGFjNzMuLjFmZTkzOTg3ZWY5NjFmZGZiZTM4ZjQ3Y2E2NzFhZjVmZGE5OGQ5
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBA
IC01NDQsNCArNTQ0LDkgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2VyR2xvYmFsU2NvcGU6OnJlZmVy
cmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcnJlclBvbGljeTsKIH0KIAorVGhy
ZWFkKiBXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdGhyZWFkLnRocmVhZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYmQ5Y2YxNDBk
ZDUyZmI4NDk4YjlmYTQxMDYwYzkzYWJmYTY4Mzg1ZS4uOTBkZjNiNmFmM2Q2M2VjNjFhZWM5YTEy
M2MwODc3ZTc5ZTM0YjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3
dGYvVVJMLmg+CiAjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCkBAIC01OSw3ICs2MCw3
IEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OwogfQog
Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2Jh
bFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGlj
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
LCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzIHsKK2NsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVi
bGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8
V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVi
bGljIEJhc2U2NFV0aWxpdGllcywgcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlckdsb2JhbFNjb3BlKTsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZSgpOwpAQCAtODUsMTMgKzg2LDE1IEBAIHB1
YmxpYzoKICAgICBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24mIHN3Q2xpZW50Q29ubmVjdGlvbigp
OwogI2VuZGlmCiAKLSAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVy
biBtX3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgp
IGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgdm9pZCBjbGVhclNjcmlwdCgp
IHsgbV9zY3JpcHQgPSBudWxscHRyOyB9CiAKICAgICBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
JiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gKm1faW5zcGVjdG9yQ29udHJv
bGxlcjsgfQogCiAgICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3Ro
cmVhZDsgfQogCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QgZmluYWw7CisK
ICAgICB1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHk7CiAK
ICAgICB2b2lkIHBvc3RUYXNrKFRhc2smJikgZmluYWw7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9u
IGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCkBAIC0xMTksNyArMTIyLDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpk
ZXJlZjsKIAotICAgIGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4gbV9jbG9zaW5nOyB9CisgICAg
Ym9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nsb3Npbmc7IH0KIAogICAg
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29s
ZU1lc3NhZ2U+JiYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0OGUwODQ4YmUzNTIyYjZh
ZDljMzI4NTMzOTc0NmM3YzM5NzQyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRo
cmVhZDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgV1RGOjpUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBib29sIGlzQ2xvc2luZygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpID0gMDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY5YmY4M2U5MzBkZDE2NWQ4
YTMzMDQ3MDUyYWQ1NWQyMmZhZmE3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGlt
ZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaW1l
clNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNh
bGxiYWNrKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigp
IGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4IDY2ZWNkNTM2ZjgxM2QwMjljNDk3ZjFhZWE3
ZjIxOWVkZmM3NWIzNzUuLmJiNjFmYzVmMmE5N2RiODRiMTEzYmUyMjNjN2E3YWRjNzE5YjQ5NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMzYsNyArMzYs
NyBAQAogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1l
cnMuaCIKICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5jbHVkZSAiV29ya2VyR2xvYmFs
U2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaWYgVVNFKEdMSUIpCkBAIC0xMzIsNyArMTMyLDcgQEAg
cHJpdmF0ZToKICAgICBJc0ZvckRlYnVnZ2luZyBtX2lzRm9yRGVidWdnaW5nIHsgSXNGb3JEZWJ1
Z2dpbmc6Ok5vIH07CiB9OwogCi12b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxT
Y29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVu
TG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwogICAgIE1vZGVQcmVkaWNhdGUgbW9kZVBy
ZWRpY2F0ZShkZWZhdWx0TW9kZSgpKTsKQEAgLTE0MywxMyArMTQzLDEzIEBAIHZvaWQgV29ya2Vy
UnVuTG9vcDo6cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQogICAgIHJ1bkNsZWFudXBU
YXNrcyhjb250ZXh0KTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29w
OjpydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkKK01lc3NhZ2VR
dWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUmIGNvbnRleHQpCiB7CiAgICAgUnVuTG9vcFNldHVwIHNldHVwKCp0
aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpZZXMpOwogICAgIHJldHVybiBydW5J
bk1vZGUoJmNvbnRleHQsIE1vZGVQcmVkaWNhdGUgeyBkZWJ1Z2dlck1vZGUoKSB9LCBXYWl0Rm9y
TWVzc2FnZSk7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVu
SW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdh
aXRNb2RlIHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpy
dW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNTRVJUKG1vZGUgIT0gZGVidWdn
ZXJNb2RlKCkpOwogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJ
c0ZvckRlYnVnZ2luZzo6Tm8pOwpAQCAtMTU4LDEwICsxNTgsMTAgQEAgTWVzc2FnZVF1ZXVlV2Fp
dFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRl
eHQsIGNvbnMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1NZXNzYWdlUXVldWVXYWl0UmVzdWx0
IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29u
c3QgTW9kZVByZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VR
dWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRlJiBwcmVkaWNhdGUsIFdhaXRN
b2RlIHdhaXRNb2RlKQogewogICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBBU1NFUlQoY29udGV4
dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKKyAgICBBU1NFUlQo
Y29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAKICAg
ICBKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIHRpbWVyQWRk
ZWRUYXNrID0gV1RGOjpjcmVhdGVTaGFyZWRUYXNrPEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVy
Tm90aWZpY2F0aW9uVHlwZT4oW3RoaXNdIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkg
ZG8gYW55dGhpbmcgaGVyZSwgd2UganVzdCB3YW50IHRvIGxvb3AgYXJvdW5kIHJ1bkluTW9kZQpA
QCAtMTg2LDEzICsxODYsMTMgQEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29w
OjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICBpZiAod2Fp
dE1vZGUgPT0gV2FpdEZvck1lc3NhZ2UgJiYgcHJlZGljYXRlLmlzRGVmYXVsdE1vZGUoKSAmJiBt
X3NoYXJlZFRpbWVyLT5pc0FjdGl2ZSgpKQogICAgICAgICB0aW1lb3V0RGVsYXkgPSBzdGQ6Om1p
bih0aW1lb3V0RGVsYXksIG1fc2hhcmVkVGltZXItPmZpcmVUaW1lRGVsYXkoKSk7CiAKLSAgICBp
ZiAoV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsK
KyAgICBpZiAoYXV0byogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2Ny
aXB0LT5yZWxlYXNlSGVhcEFjY2VzcygpOwogICAgICAgICBzY3JpcHQtPmFkZFRpbWVyU2V0Tm90
aWZpY2F0aW9uKHRpbWVyQWRkZWRUYXNrKTsKICAgICB9CiAgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCByZXN1bHQ7CiAgICAgYXV0byB0YXNrID0gbV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3Nh
Z2VGaWx0ZXJlZFdpdGhUaW1lb3V0KHJlc3VsdCwgcHJlZGljYXRlLCB0aW1lb3V0RGVsYXkpOwot
ICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQo
KSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5zY3JpcHQoKSkgewogICAgICAg
ICBzY3JpcHQtPmFjcXVpcmVIZWFwQWNjZXNzKCk7CiAgICAgICAgIHNjcmlwdC0+cmVtb3ZlVGlt
ZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAgIH0KQEAgLTIyMywxMCArMjIz
LDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdv
cmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
dm9pZCBXb3JrZXJSdW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29ya2VyR2xvYmFsU2NvcGUqIGNv
bnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgQVNT
RVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Cisg
ICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50
KCkpOwogICAgIEFTU0VSVChtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKSk7CiAKICAgICB3aGlsZSAo
dHJ1ZSkgewpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdERlYnVn
Z2VyVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKICAgICBwb3N0VGFz
a0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgZGVidWdnZXJNb2RlKCkpOwogfQogCi12b2lkIFdvcmtl
clJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNrKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQor
dm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSogY29udGV4dCkKIHsKICAgICBpZiAoKCFjb250ZXh0LT5pc0Nsb3NpbmcoKSAmJiBj
b250ZXh0LT5zY3JpcHQoKSAmJiAhY29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVj
dXRpb24oKSkgfHwgbV90YXNrLmlzQ2xlYW51cFRhc2soKSkKICAgICAgICAgbV90YXNrLnBlcmZv
cm1UYXNrKCpjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKaW5k
ZXggYThjOWRlYmQ4MGQ4MDk5NTRhN2E5ZDY5MGY3NzQwNmQyNTI4MjY2OC4uZWUyNmIzN2YyOTlj
YTY5OWMwNGMwYjFjNzQ0MTUwNDgwODcxNTdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmgKQEAgLTM4LDcgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IGNsYXNzIE1vZGVQcmVkaWNhdGU7Ci0gICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CisgICAg
Y2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CiAgICAgY2xhc3MgV29ya2VyU2hhcmVk
VGltZXI7CiAKICAgICBjbGFzcyBXb3JrZXJSdW5Mb29wIHsKQEAgLTQ3LDEzICs0NywxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5Xb3JrZXJSdW5Mb29wKCk7CiAgICAgICAgIAog
ICAgICAgICAvLyBCbG9ja2luZyBjYWxsLiBXYWl0cyBmb3IgdGFza3MgYW5kIHRpbWVycywgaW52
b2tlcyB0aGUgY2FsbGJhY2tzLgotICAgICAgICB2b2lkIHJ1bihXb3JrZXJHbG9iYWxTY29wZSop
OworICAgICAgICB2b2lkIHJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAg
ICAgIGVudW0gV2FpdE1vZGUgeyBXYWl0Rm9yTWVzc2FnZSwgRG9udFdhaXRGb3JNZXNzYWdlIH07
CiAKICAgICAgICAgLy8gV2FpdHMgZm9yIGEgc2luZ2xlIHRhc2sgYW5kIHJldHVybnMuCi0gICAg
ICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwg
Y29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSA9IFdhaXRGb3JNZXNzYWdlKTsKLSAgICAgICAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29w
ZSYpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgPSBXYWl0Rm9y
TWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1Z2dlck1v
ZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmKTsKIAogICAgICAgICB2b2lkIHRlcm1pbmF0
ZSgpOwogICAgICAgICBib29sIHRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VR
dWV1ZS5raWxsZWQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICBjb25zdCBTdHJpbmcmIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0K
IAogICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJH
bG9iYWxTY29wZSopOworICAgICAgICAgICAgdm9pZCBwZXJmb3JtVGFzayhXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpU
YXNrIG1fdGFzazsKICAgICAgICAgICAgIFN0cmluZyBtX21vZGU7CkBAIC04MywxMSArODMsMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNs
YXNzIFJ1bkxvb3BTZXR1cDsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5Jbk1v
ZGUoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGljYXRlJiwgV2FpdE1vZGUpOwor
ICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9kZShXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0TW9kZSk7CiAKICAgICAgICAg
Ly8gUnVucyBhbnkgY2xlYW4gdXAgdGFza3MgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSBxdWV1
ZSBhbmQgcmV0dXJucy4KICAgICAgICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hl
biB0aGUgY29udGV4dCBpcyBjbG9zZWQgb3IgbG9vcCBoYXMgYmVlbiB0ZXJtaW5hdGVkLgotICAg
ICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2
b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAg
ICAgIGJvb2wgaXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z0NvdW50ID49
IDE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAppbmRleCAzZDZlMGI3YWYwMWUy
MTg1ZTFjOWZmOWRiMDdmZmQzMGVkZGQyMTc4Li4zOTA4YmRmM2EyOTZjODFiNmY0YmE4ZThlMDhl
M2ZjNTgyZWU1ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcApAQCAtMjgsMjcg
KzI4LDc2IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKLSNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRH
bG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgiCisjaW5j
bHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENv
cGllci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtsZXQpOwogCi1SZWY8
V29ya2xldD4gV29ya2xldDo6Y3JlYXRlKCkKK1dvcmtsZXQ6OldvcmtsZXQoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXb3JrbGV0KCkpOwogfQogCi1Xb3JrbGV0OjpXb3JrbGV0KCkKK1dvcmts
ZXQ6On5Xb3JrbGV0KCkgPSBkZWZhdWx0OworCitEb2N1bWVudCogV29ya2xldDo6ZG9jdW1lbnQo
KQoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKK30KKworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dvcmtsZXRzLTEvI2RvbS13b3Jr
bGV0LWFkZG1vZHVsZQordm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1
bGVVUkxTdHJpbmcsIFdvcmtsZXRPcHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50
KCk7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoaXMgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBVUkwgbW9kdWxlVVJMID0gZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKG1vZHVsZVVSTFN0cmluZyk7CisgICAgaWYgKCFtb2R1bGVVUkwuaXNWYWxpZCgp
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiTW9k
dWxlIFVSTCBpcyBpbnZhbGlkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKG1fcHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJveGllcy5hcHBlbmRWZWN0b3Io
Y3JlYXRlR2xvYmFsU2NvcGVzKCkpOworCisgICAgYXV0byBwZW5kaW5nVGFza3MgPSBXb3JrbGV0
UGVuZGluZ1Rhc2tzOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocHJvbWlzZSksIG1fcHJveGllcy5z
aXplKCkpOworICAgIG1fcGVuZGluZ1Rhc2tzU2V0LmFkZChwZW5kaW5nVGFza3MuY29weVJlZigp
KTsKKworICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMpIHsKKyAgICAgICAgcHJveHkt
PnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtwZW5kaW5nVGFza3MgPSBwZW5k
aW5nVGFza3MuY29weVJlZigpLCBtb2R1bGVVUkwgPSBtb2R1bGVVUkwuaXNvbGF0ZWRDb3B5KCks
IGNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscywgcGVuZGluZ0FjdGl2aXR5ID0gbWFr
ZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IG11dGFibGUgeworICAgICAgICAgICAgZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250
ZXh0KS5mZXRjaEFuZEludm9rZVNjcmlwdChtb2R1bGVVUkwsIGNyZWRlbnRpYWxzLCBbcGVuZGlu
Z1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3MpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3Zl
KHBlbmRpbmdBY3Rpdml0eSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3BlbmRpbmdUYXNrcyA9IFdU
Rk1vdmUocGVuZGluZ1Rhc2tzKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlv
biksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBlbmRpbmdUYXNrcy0+YWJvcnQoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+
ZGVjcmVtZW50Q291bnRlcigpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgIH0KK30KKwor
dm9pZCBXb3JrbGV0OjpmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xldFBlbmRpbmdUYXNrcyYgdGFz
a3MpCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5n
VGFza3NTZXQuY29udGFpbnMoJnRhc2tzKSk7CisKKyAgICBtX3BlbmRpbmdUYXNrc1NldC5yZW1v
dmUoJnRhc2tzKTsKIH0KIAotdm9pZCBXb3JrbGV0OjphZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSkKK2NvbnN0IGNoYXIqIFdvcmtsZXQ6OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBBZGQgcHJvcGVyIGltcGxlbWVudGF0aW9uLgot
ICAgIFVOVVNFRF9QQVJBTShtb2R1bGVVUkwpOwotICAgIHByb21pc2UucmVzb2x2ZSgpOworICAg
IHJldHVybiAiV29ya2xldCI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXQuaAppbmRleCBiMmJlZGM2NTg2NWI3NGY1Zjk5NTZmMDRjZmNjYzNmODM1
MTlmMmUxLi40MTY4Njc0YzczYjI5OTA5YmE2Mjk2MjU3MjFiMzgwNTNlMjI3YmVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldC5oCkBAIC0yNSwyNyArMjUsNDUgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNs
dWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgV29ya2xldEdsb2JhbFNjb3Bl
UHJveHk7CitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOwogCi1zdHJ1Y3QgV29ya2xldE9wdGlv
bnM7Ci0KLWNsYXNzIFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0PiwgcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSB7CitjbGFzcyBXb3JrbGV0IDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXb3Jr
bGV0PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChXb3JrbGV0KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdvcmtsZXQ+IGNyZWF0ZSgpOwot
ICAgIHZpcnR1YWwgfldvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+V29ya2xldCgp
OwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkws
IFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZv
aWQgZmluaXNoUGVuZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFza3MmKTsKKyAgICBEb2N1bWVu
dCogZG9jdW1lbnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3Bl
UHJveHk+PiYgcHJveGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJveGllczsgfQogCiBwcm90ZWN0
ZWQ6Ci0gICAgV29ya2xldCgpOworICAgIGV4cGxpY2l0IFdvcmtsZXQoRG9jdW1lbnQmKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+
PiBjcmVhdGVHbG9iYWxTY29wZXMoKSA9IDA7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAg
VmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IG1fcHJveGllczsKKyAgICBIYXNo
U2V0PFJlZlB0cjxXb3JrbGV0UGVuZGluZ1Rhc2tzPj4gbV9wZW5kaW5nVGFza3NTZXQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCmlu
ZGV4IDBiNzc0YzI3NGFhZjIwZTBjYzg4Mzc3MjcxYzcxNmEwMGZhZjllNjEuLjI5M2NmMDZlMTU1
NmU5YjU3N2EyYTRkMTk1ODhkMTY4MDZhYmVlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXQuaWRsCkBAIC0yNCw4ICsyNCwxMCBAQAogKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwK
ICAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBHbG9iYWw9V29ya2xldCwKICAgICBTa2lwVlRhYmxl
VmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV29ya2xldCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50
XSBQcm9taXNlPHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlv
bmFsIFdvcmtsZXRPcHRpb25zIG9wdGlvbnMpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBhZGRN
b2R1bGUoVVNWU3RyaW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMgb3B0aW9u
cyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNv
bGVDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGll
bnQuY3BwCmluZGV4IDRlNTE3YTAxYTczNDczYjBiZDQ1OWY5ZDUwY2RlMjI4YTgwNzY5ZDAuLmZk
ZjU1MGY0NDk5MmQ5ZTYwNDMxZTdkMjNmZGZiMzlkMWQwZTkzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKQEAgLTI2LDggKzI2LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0Q29uc29sZUNsaWVudC5o
IgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2Fn
ZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEFyZ3VtZW50cy5oPgpAQCAtNzEs
NCArNjksMyBAQCB2b2lkIFdvcmtsZXRDb25zb2xlQ2xpZW50OjpyZWNvcmRFbmQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+Jgogdm9pZCBXb3JrbGV0Q29uc29sZUNs
aWVudDo6c2NyZWVuc2hvdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50
cz4mJikgeyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmgKaW5kZXggZmIzZDAxZGFjNjk4
OGQwMDIyNWE2ZGZkZGRlNTkzY2Q3MTk4NTg4NC4uMTJiYjQ5YTVkYWZiOGFmM2MzY2Q5OTY3ZjZm
MGJhMWRjM2I1NTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dENvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29u
c29sZUNsaWVudC5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5B
QkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTYyLDQgKzYwLDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKaW5kZXggM2I3NTgyYWZmY2QwNGIxNDYyOTBmM2E3NDY4NjczNGFjNjkw
ZmVmMi4uZmE2ZDMxNzM5YTEwYzY4MWRhYTE5ZjMwYmU2Yzk1MGI5NDJjMjJmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNyw4ICsy
Nyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3Bl
LmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKQEAgLTM2LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZl
bnRMb29wLmgiCi0jaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAg
LTQ3LDEwICs0NCwyNCBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoV29ya2xldEdsb2JhbFNjb3BlKTsKIAorV29ya2xldEdsb2JhbFNj
b3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB3aW5kb3dVUkwsIEpTQzo6UnVudGlt
ZUZsYWdzIGpzUnVudGltZUZsYWdzKQorICAgIDogbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcj4odGhpcykpCisgICAgLCBtX3RvcE9yaWdpbihTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3VybCh3aW5kb3dVUkwpCisgICAgLCBtX2pzUnVu
dGltZUZsYWdzKGpzUnVudGltZUZsYWdzKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsV29y
a2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJl
c3VsdCwgYWRkUmVzdWx0KTsKKworICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5
T3JpZ2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7CisgICAgc2V0Q29u
dGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwg
eyB0aGlzLT51cmwoKSB9LCAqdGhpcykpOworfQorCiBXb3JrbGV0R2xvYmFsU2NvcGU6Oldvcmts
ZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBTY3Jp
cHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1l
bnQpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4o
V1RGTW92ZSh2bSksIHRoaXMpKQogICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwoY29kZS51cmwoKSkKICAgICAsIG1fY29kZShXVEZN
b3ZlKGNvZGUpKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Bl
c1NldCgpLmFkZCh0aGlzKTsKQEAgLTYxLDcgKzcyLDcgQEAgV29ya2xldEdsb2JhbFNjb3BlOjpX
b3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8SlNDOjpWTT4mJiB2bSwg
U2MKICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgpKTsKIAogICAgIHNldFNlY3VyaXR5T3JpZ2lu
UG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigp
KSk7Ci0gICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3Vy
aXR5UG9saWN5PihVUkwgeyBtX2NvZGUudXJsKCkgfSwgKnRoaXMpKTsKKyAgICBzZXRDb250ZW50
U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IHRo
aXMtPnVybCgpIH0sICp0aGlzKSk7CiB9CiAKIFdvcmtsZXRHbG9iYWxTY29wZTo6fldvcmtsZXRH
bG9iYWxTY29wZSgpCkBAIC0xMTMsNyArMTI0LDggQEAgU3RyaW5nIFdvcmtsZXRHbG9iYWxTY29w
ZTo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdvcmtsZXRHbG9iYWxT
Y29wZTo6ZXZhbHVhdGUoKQogewotICAgIG1fc2NyaXB0LT5ldmFsdWF0ZShtX2NvZGUpOworICAg
IGlmIChtX2NvZGUpCisgICAgICAgIG1fc2NyaXB0LT5ldmFsdWF0ZSgqbV9jb2RlKTsKIH0KIAog
Ym9vbCBXb3JrbGV0R2xvYmFsU2NvcGU6OmlzSlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdApA
QCAtMTM1LDcgKzE0Nyw3IEBAIFVSTCBXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMKGNv
bnN0IFN0cmluZyYgdXJsLCBGb3JjZVVURjgpIGNvbnN0CiB7CiAgICAgaWYgKHVybC5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwotICAgIHJldHVybiBVUkwobV9jb2RlLnVybCgpLCB1
cmwpOworICAgIHJldHVybiBVUkwodGhpcy0+dXJsKCksIHVybCk7CiB9CiAKIHZvaWQgV29ya2xl
dEdsb2JhbFNjb3BlOjpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVt
bk51bWJlciwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKQEAgLTE3MSw1ICsxODMs
MTEgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgp
IGNvbnN0CiAgICAgcmV0dXJuIFJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOwogfQogCit2b2lk
IFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiwgRmV0
Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhj
ZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKKyAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURjo6bnVsbG9wdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNj
b3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRl
eCAyNWQ1NDlhYzRhMGFhNmZmNzUyODc1NWQ3MDQ3YzgxNGVlN2RjNDA0Li5hMTVlZThmMTJkMGE4
N2RhZjU2MWVlMWUzN2E3MGRjNjZkNGQwNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMjYsMzAgKzI2LDMyIEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNp
bmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAi
V29ya2VyRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCIKKyNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVu
dGltZUZsYWdzLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnRMb29wVGFza0dy
b3VwOwogY2xhc3MgV29ya2VyRXZlbnRMb29wOwotY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI7CiAKIGVudW0gV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcg
V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xldEds
b2JhbFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGU+LCBwdWJsaWMgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworY2xhc3MgV29y
a2xldEdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xldEdsb2JhbFNjb3BlPiwg
cHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2Nv
cGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtNTcs
MTEgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0ID0g
SGFzaFNldDxjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUqPjsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgV29ya2xldEdsb2JhbFNjb3Blc1NldCYgYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgp
OwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAgdmlydHVhbCBib29sIGlzUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisj
aWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKIAogICAgIEV2ZW50TG9v
cFRhc2tHcm91cCYgZXZlbnRMb29wKCkgZmluYWw7CiAKLSAgICBjb25zdCBVUkwmIHVybCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZS51cmwoKTsgfQorICAgIGNvbnN0IFVSTCYgdXJsKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV91cmw7IH0KIAogICAgIHZvaWQgZXZhbHVhdGUoKTsKIApA
QCAtNzAsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIq
IHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CisgICAgV29ya2xldFNjcmlwdENv
bnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAKICAg
ICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNv
bGVNZXNzYWdlPiYmKSBmaW5hbDsKIApAQCAtNzksNiArODYsMTAgQEAgcHVibGljOgogCiAgICAg
U29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsg
fQogCisgICAgLy8gV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuCisgICAgVGhyZWFkKiB1bmRl
cmx5aW5nVGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGJv
b2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc0Nsb3Npbmc7IH0KKwogICAg
IGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IGJvb2wgaXNTZWN1cmVDb250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIApA
QCAtODYsNyArOTcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JE
ZXN0cnVjdGlvbigpOwogCisgICAgdm9pZCBmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwm
LCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVjdGVkOgorICAgIFdvcmtsZXRHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHdpbmRvd1VSTCwgSlNDOjpSdW50aW1lRmxhZ3MpOwogICAgIFdvcmtsZXRH
bG9iYWxTY29wZShEb2N1bWVudCYsIFJlZjxKU0M6OlZNPiYmLCBTY3JpcHRTb3VyY2VDb2RlJiYp
OwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUmKSA9IGRl
bGV0ZTsKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2xldEdsb2JhbFNjb3BlJiYpID0gZGVs
ZXRlOwpAQCAtMTM2LDggKzE1MCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXb3JrZXJFdmVu
dExvb3A+IG1fZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3Jv
dXA+IG1fZGVmYXVsdFRhc2tHcm91cDsKIAorICAgIFVSTCBtX3VybDsKICAgICBKU0M6OlJ1bnRp
bWVGbGFncyBtX2pzUnVudGltZUZsYWdzOwotICAgIFNjcmlwdFNvdXJjZUNvZGUgbV9jb2RlOwor
ICAgIE9wdGlvbmFsPFNjcmlwdFNvdXJjZUNvZGU+IG1fY29kZTsKKyAgICBib29sIG1faXNDbG9z
aW5nIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAgLTE0NSw0ICsx
NjEsMyBAQCBwcml2YXRlOgogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpX
b3JrbGV0R2xvYmFsU2NvcGUpCiBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1dvcmtsZXRH
bG9iYWxTY29wZSgpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCmluZGV4IGQ3
NTlmMGNlMWQxNmY4NjkxODYwMTI3NzZmMGRiMTZiNjFiYWE0NzguLmJmMDcxMzg0YTNmMzA4ZmY2
YzY0NWM5NTg0Y2IzYjFjYjllNWUwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmlkbApAQCAtMjYsOCArMjYsNiBAQAogWwogICAgIEN1c3RvbVBy
b3h5VG9KU09iamVjdCwKICAgICBFeHBvc2VkPVdvcmtsZXQsCi0gICAgRW5hYmxlZEF0UnVudGlt
ZT1DU1NQYWludGluZ0FQSSwKLSAgICBDb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJLAogICAg
IEpTTGVnYWN5UGFyZW50PUpTV29ya2xldEdsb2JhbFNjb3BlQmFzZSwKICAgICBJbXBsaWNpdFRo
aXMsCiAgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YWM1ZDkxY2M3ZDAyNDIwYjVmYWZmMjE5MWMwZWVmOGZmOWE1ZDdmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaApAQCAt
MCwwICsxLDQ2IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6Cisq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFza3M7CisKK2NsYXNzIFdvcmts
ZXRHbG9iYWxTY29wZVByb3h5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtsZXRH
bG9iYWxTY29wZVByb3h5PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNj
b3BlUHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgcG9zdFRhc2tGb3JNb2Rl
VG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25z
dCBTdHJpbmcmIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eSgpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmZmZTVkNzYxYWY0NmYyNjE0MTE3OTA0YWMxMDRjMzA0OTExNDVkOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3Bw
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNr
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dvcmtsZXRQZW5kaW5nVGFza3M6Oldvcmts
ZXRQZW5kaW5nVGFza3MoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgOiBtX3dvcmtsZXQobWFrZVdlYWtQdHIod29y
a2xldCkpCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKKyAgICAsIG1fY291bnRl
cihjb3VudGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cit9CisKK3ZvaWQgV29y
a2xldFBlbmRpbmdUYXNrczo6YWJvcnQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9jb3VudGVyID09IC0xKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2NvdW50ZXIgPSAtMTsKKyAgICBtX3Byb21pc2UucmVqZWN0KFdU
Rk1vdmUoZXhjZXB0aW9uKSk7CisgICAgaWYgKG1fd29ya2xldCkKKyAgICAgICAgbV93b3JrbGV0
LT5maW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworfQorCit2b2lkIFdvcmtsZXRQZW5kaW5nVGFz
a3M6OmRlY3JlbWVudENvdW50ZXIoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZiAobV9jb3VudGVyID09IC0xKQorICAgICAgICByZXR1cm47CisKKyAgICAtLW1fY291
bnRlcjsKKyAgICBpZiAoIW1fY291bnRlcikgeworICAgICAgICBtX3Byb21pc2UucmVzb2x2ZSgp
OworICAgICAgICBpZiAobV93b3JrbGV0KQorICAgICAgICAgICAgbV93b3JrbGV0LT5maW5pc2hQ
ZW5kaW5nVGFza3MoKnRoaXMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjczM2Q2YmJhYmUwZTliOTNlMjgzYTMyODY3MTVjYTg5ZGMyNmMwOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldDsKKworLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tzLXN0cnVjdAorY2xhc3MgV29y
a2xldFBlbmRpbmdUYXNrcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrbGV0UGVu
ZGluZ1Rhc2tzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrbGV0UGVuZGluZ1Rhc2tz
PiBjcmVhdGUoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSwgaW50IGNvdW50ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
b3JrbGV0UGVuZGluZ1Rhc2tzKHdvcmtsZXQsIFdURk1vdmUocHJvbWlzZSksIGNvdW50ZXIpKTsK
KyAgICB9CisKKyAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbiYmKTsKKyAgICB2b2lkIGRlY3JlbWVu
dENvdW50ZXIoKTsKKworcHJpdmF0ZToKKyAgICBXb3JrbGV0UGVuZGluZ1Rhc2tzKFdvcmtsZXQm
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiwgaW50IGNvdW50ZXIpOworCisgICAgV2Vha1B0
cjxXb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+IG1fcHJv
bWlzZTsKKyAgICBpbnQgbV9jb3VudGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDIwYTZmODU2MTg1OGFkZmJlMmUyYmMxOGViZjcxNTBiOTdhZDE0ZjguLjE3ZGY1
ZTFmM2NmMDY1NzE0YmNlZjc1ZWQ4NWZjYWQ1MzhmNmU4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2LDggKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KKyNpbmNsdWRlICJKU0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCkBAIC01Niw2
ICs1NSwxMSBAQCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29ya2xldFNjcmlwdENvbnRyb2xs
ZXIoUmVmPFZNPiYmIHZtLCBXb3JrbGV0R2xvYmFsU2NvcAogICAgIEpTVk1DbGllbnREYXRhOjpp
bml0Tm9ybWFsV29ybGQobV92bS5nZXQoKSk7CiB9CiAKK1dvcmtsZXRTY3JpcHRDb250cm9sbGVy
OjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3JrbGV0R2xvYmFsU2NvcGUqIHdvcmtsZXRHbG9i
YWxTY29wZSkKKyAgICA6IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKFZNOjpjcmVhdGUoKSwgd29y
a2xldEdsb2JhbFNjb3BlKQoreworfQorCiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6fldvcmts
ZXRTY3JpcHRDb250cm9sbGVyKCkKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSgpKTsKQEAg
LTE0NSwxMCArMTQ5LDE5IEBAIHZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3Jp
cHQoKQogICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQogICAgICAgICByZXR1cm47CiAK
KyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBpZiAoaXM8UGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgewogICAgICAgICBpbml0U2NyaXB0V2l0
aFN1YmNsYXNzPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGUsIFBhaW50V29ya2xldEdsb2JhbFNjb3BlPigpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGlmIChpczxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7CisgICAgICAg
IGluaXRTY3JpcHRXaXRoU3ViY2xhc3M8SlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZVByb3RvdHlw
ZSwgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSwgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQpAQCAtMTk2LDUgKzIwOSw2MiBAQCB2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
OjpzZXRFeGNlcHRpb24oSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlvbikKICAgICB0aHJvd0V4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgZXhjZXB0aW9uKTsKIH0KIAordm9pZCBX
b3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVsZWFzZUhlYXBBY2Nlc3MoKQoreworICAgIG1fdm0t
PmhlYXAucmVsZWFzZUFjY2VzcygpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
OjphY3F1aXJlSGVhcEFjY2VzcygpCit7CisgICAgbV92bS0+aGVhcC5hY3F1aXJlQWNjZXNzKCk7
Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0
aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJh
Y2spCit7CisgICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVyKiB0aW1l
cikgeworICAgICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0
aW1lci0+YWRkVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisKKyAgICBw
cm9jZXNzVGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9j
ZXNzVGltZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNz
VGltZXIobV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9v
cFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIGF1dG8g
cHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGltZXIpIHsKKyAgICAgICAgaWYg
KCF0aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGltZXItPnJlbW92ZVRpbWVy
U2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisgICAgcHJvY2Vzc1RpbWVyKG1f
dm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0t
PmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmRl
ZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpCit7CisgICAgaWYgKG1faXNUZXJtaW5h
dGluZ0V4ZWN1dGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgeworICAgICAgICAvLyBUaGUg
bXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1cmUgdGhhdCBvbmNlCisgICAg
ICAgIC8vIHRlcm1pbmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigp
IHdpbGwKKyAgICAgICAgLy8gYWNjdXJhdGVseSByZWZsZWN0IHRoYXQgbGV4aWNhbEdsb2JhbE9i
amVjdCB3aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgorICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrKTsKKyAgICAgICAgbV9pc1Rl
cm1pbmF0aW5nRXhlY3V0aW9uID0gdHJ1ZTsKKyAgICB9CisgICAgbV92bS0+bm90aWZ5TmVlZFRl
cm1pbmF0aW9uKCk7Cit9CisKK2Jvb2wgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmlzVGVybWlu
YXRpbmdFeGVjdXRpb24oKSBjb25zdAoreworICAgIC8vIFNlZSBjb21tZW50cyBpbiBzY2hlZHVs
ZUV4ZWN1dGlvblRlcm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRleCB1c2FnZS4KKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2NrKTsKKyAgICByZXR1cm4g
bV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oCmluZGV4IGUzNmQyYTI0MmJmNTQ2NGZhMjdjZjNkYTlhYjUyODRmMDAwNGQ2ZWUuLjZk
NDNjZTVmOWZmZDJhNzBhZjBiZjZlNWFlZTU0Y2Q4ZmFjNzJmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMjUsOCArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCisj
aW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5M
b29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ2LDkg
KzQ1LDExIEBAIGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50OwogY2xhc3MgV29ya2xldEdsb2Jh
bFNjb3BlOwogY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiAKLWNsYXNzIFdvcmtsZXRTY3Jp
cHRDb250cm9sbGVyIHsKKy8vIEZJWE1FOiBXZSBzaG91bGQgc2hhcmUgbW9yZSBjb2RlIHdpdGgg
V29ya2VyU2NyaXB0Q29udHJvbGxlci4KK2NsYXNzIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyIDog
cHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgV29ya2xldFNjcmlwdENvbnRyb2xsZXIoV29ya2xl
dEdsb2JhbFNjb3BlKik7CiAgICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIoUmVmPEpTQzo6Vk0+
JiYsIFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAgIH5Xb3JrbGV0U2NyaXB0Q29udHJvbGxlcigp
OwogCkBAIC02NCw2ICs2NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBkaXNhYmxlV2ViQXNzZW1ibHkoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCisgICAgdm9pZCByZWxlYXNlSGVhcEFjY2Vzcygp
IGZpbmFsOworICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKworICAgIHZvaWQg
YWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmlj
YXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlv
bihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsK
KworICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOworICAgIGJvb2wgaXNU
ZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBldmFsdWF0ZShj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2Ug
PSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBO
YWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogCkBAIC04Nyw3ICs5Nyw4IEBAIHByaXZh
dGU6CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKiBtX3dvcmtsZXRHbG9iYWxTY29wZTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V29ya2xldENvbnNvbGVDbGllbnQ+IG1fY29uc29sZUNsaWVudDsKICAg
ICBKU0M6OlN0cm9uZzxKU1dvcmtsZXRHbG9iYWxTY29wZT4gbV93b3JrbGV0R2xvYmFsU2NvcGVX
cmFwcGVyOworICAgIG11dGFibGUgTG9jayBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTG9jazsKKyAg
ICBib29sIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCmlu
ZGV4IDZhMTAxYzM5NTkzY2M0YzE1NGM3NDVmNmQ3OTczN2EwMmE5MjNmNmQuLjBiOWFiMWRjZTM0
YTUyMGQ4MmUyZmFkNWY1ZDA2YTg2OWVmNzRkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3AoKTsKICAgICB9
CiAKLSAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOyB9CisgICAgdm9p
ZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoeyB9KTsgfQogICAgIHZvaWQgc3RvcCgp
IHsgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOyB9CiAgICAgYm9vbCBpc1BsYXlpbmcoKSB7IHJldHVy
biBtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKTsgfQogICAgIHVuc2lnbmVkIGZyYW1lc1BlckJ1
ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZlcigpIDsg
fQpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIgbV9pZDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5h
dGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKICAgICBS
ZWZQdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4gbV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVs
U2h1dGRvd247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKaW5kZXgg
MDY5NDViYWZkNWQxODljN2EwZjljNzI0MDJiYjg4OWRjODA3ZjZmNC4uODIxMzgwMGI5ZjEwYzU4
MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmNwcApAQCAtNDMsMTAgKzQzLDEwIEBAIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVk
aW9CdXM7CiB1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjsKIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKIAot
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCitSZWY8QXVkaW9EZXN0aW5h
dGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNr
JiBjYWxsYmFjaywKICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51
bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShjYWxsYmFjaywgaW5wdXREZXZp
Y2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1w
bGVSYXRlKSk7CiB9CiAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQpAQCAtNzcsOCArNzcsOSBA
QCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkoKQogICAgIH0pOwogfQogCi12b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3Rh
cnQoKQordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KEZ1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogeworICAg
IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1JlbmRlclRocmVh
ZCk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25J
RCksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3Rh
cnRBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOwpAQCAtODksMTkgKzkw
LDMxIEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAogICAgICAgICBN
ZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0
aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVh
ZCA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5k
ZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgcmVuZGVyaW5nIG9uIHRoZSBtYWluIHRocmVhZCB3aGVuIEF1ZGlv
V29ya2xldCBpcyBub3QgYWN0aXZlLCB3aGljaCBpcyBsaWtlbHkgbm90IGEgZ29vZCBpZGVhLgor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5mcmFt
ZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6
ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShhdWRpb0J1c0RhdGEu
Y2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBmYWxz
ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVm
ZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwg
KGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEoKSwgYXVkaW9CdXNE
YXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1
cy5nZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgYXVkaW9CdXNEYXRhLm91dHB1
dFBvc2l0aW9uKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgYXV0byBkb1JlbmRl
ciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGF1ZGlvQnVzID0gV1RG
TW92ZShhdWRpb0J1cyksIGZyYW1lc1RvUHJvY2VzcyA9IGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1By
b2Nlc3MsIG91dHB1dFBvc2l0aW9uID0gYXVkaW9CdXNEYXRhLm91dHB1dFBvc2l0aW9uXSB7Cisg
ICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBmcmFtZXNUb1Byb2Nl
c3MsIG91dHB1dFBvc2l0aW9uKTsKKyAgICB9OworICAgIGlmIChtX2Rpc3BhdGNoVG9SZW5kZXJU
aHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFtkb1JlbmRlciA9IFdU
Rk1vdmUoZG9SZW5kZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZG9SZW5kZXIoKTsKKyAgICAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICB9
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb1JlbmRlcigpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5oCmluZGV4IGFkYTZmZWVmZjM3NDMwZjNjNGRkMzdmMTNjN2UzYTRlNzY2YTM5ZGEu
LjkwN2VjZjVhNzdmNDJiOTQ3ODkwYmRmM2ExN2UxOGVjZmI1YWE1ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
QXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKICAgICB1c2luZyBBdWRpb0lPQ2FsbGJhY2sg
PSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcm
IGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIFJl
ZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVk
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICB+UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5KCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCi0gICAgdm9pZCBzdGFydCgpIG92ZXJy
aWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYm
IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgpIG92ZXJy
aWRlOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7
IH0KICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zYW1w
bGVSYXRlOyB9CkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9mcmFt
ZXNQZXJCdWZmZXIgeyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIg
bV9kZXN0aW5hdGlvbklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OworICAgIEZ1
bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFk
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAppbmRleCAyZTg2MWEx
ZTRlMzFlMTQ3ODJhMmI5ZTgzMTk4YzE2N2E1OTQ2MTEzLi5kNWFlZjE1MzRhZDIzNjVkMjEzN2Ex
N2I2ZjZkNDRlMWVmODUxOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0g
ZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlu
cHV0RGV2aWNlSWQsCitSZWY8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smIGNh
bGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgdW5zaWduZWQgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5kZXggODE3
YzRjMjliMTczMmY0NWY5MGUyMTU1ZDY1Y2VlODQ3YzE3YmVlMi4uNmI3YjljZTYwM2E4NzM5ZTcx
ZDkwNDc1ZmNjNzg3MjY4ZjZkOWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2Vi
Q29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKKyAgICBSZWY8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAogICAg
ICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQppbmRleCBmYWY5M2I3M2EyYjAxNDEwMzgwNWE1Y2M2YmNhN2I2NTNhNjUy
N2I3Li5lYmJiM2JlYTZlZGJiNDdiY2I0ZTJkMGIyOTdmY2QwNWViYTYzMjk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02OSw3ICs2OSw3IEBAIFBhc3RlYm9hcmRTdHJhdGVn
eSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogY2xh
c3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGluYXRpb24+
IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRl
KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKaW5kZXggZGY0YTFmNzg1MDRkYmUyMzBhOTc3ZTk3ZmQyNTlkMjRlNGY5MjAzMS4uZTAzNDIz
ZDc1M2NiMTk4MGVlM2ViODg5MmZhMjg1MWVlNDk2MjUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogY2xhc3MgV2ViTWVk
aWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRl
CiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNr
LCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCmluZGV4IDRkNjNmNDBjZmVkNzcyYTU2YzI1NGMwNTMxMDczMjVhMmQ5YWI2ZTMuLjc0
NjE5ZGU0OGU2MTQxYWQ3ZDliZWQyNmMwMTY3ZjgxZTE1ZDliNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTgzOCw2ICs4MzgsNyBAQCBzdGF0aWMg
dm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5j
ZXMpCiAgICAgW3ByZWZlcmVuY2VzIHNldEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWln
aHRFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTSW5kaXZpZHVhbFRyYW5z
Zm9ybVByb3BlcnRpZXNFbmFibGVkOllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldEF1ZGlvV29y
a2xldEVuYWJsZWQ6WUVTXTsKIH0KIAogLy8gQ2FsbGVkIGJlZm9yZSBlYWNoIHRlc3QuCkBAIC05
MzEsNyArOTMyLDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcygpCiAKICAgICBbcHJlZmVyZW5jZXMgc2V0V2ViQXVkaW9FbmFibGVkOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldE1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6WUVTXTsK
LSAgICBbcHJlZmVyZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVm
ZXJlbmNlcyBzZXRNZWRpYVNvdXJjZUVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
U291cmNlQnVmZmVyQ2hhbmdlVHlwZUVuYWJsZWQ6WUVTXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iaW5kaW5ncy9tYWluLnB5CmluZGV4IDMxYWVjMzgyZTdiYTNhM2FiZjlmMjcxMjJmYjg0ZTIw
NTc4ODA3YzQuLjFkMDkxM2I0ZWYwNTlhNGUxZTc5MDZjNWViNDlkZWRiNjY0NjQ1OTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKQEAgLTcyLDcgKzcyLDcgQEAgY2xh
c3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgIGV4aXRfY29kZSA9IGUuZXhpdF9jb2RlCiAg
ICAgICAgIHJldHVybiBleGl0X2NvZGUKIAotICAgIGRlZiBnZW5lcmF0ZV9zdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5
X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGlj
YXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3Rn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgZGVmIGdlbmVyYXRlX3N1cHBsZW1l
bnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVu
ZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93
X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwg
ZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3Jr
ZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwg
YXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgIGlkbF9maWxlc19saXN0ID0gdGVtcGZpbGUu
bWtzdGVtcCgpCiAgICAgICAgIGZvciBpbnB1dF9maWxlIGluIG9zLmxpc3RkaXIoaW5wdXRfZGly
ZWN0b3J5KToKICAgICAgICAgICAgIChuYW1lLCBleHRlbnNpb24pID0gb3MucGF0aC5zcGxpdGV4
dChpbnB1dF9maWxlKQpAQCAtOTgsNiArOTgsNyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAg
ICAgICAgICAgICAgJy0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScs
IHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAg
ICAgICctLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCB3b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS1wYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwKKyAgICAgICAgICAgICAgICctLWF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZScsIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlLAogICAgICAgICAgICAgICAgJy0tdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScs
IHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXZh
bGlkYXRlQWdhaW5zdFBhcnNlciddCiAKQEAgLTIwMSw2ICsyMDIsNyBAQCBjbGFzcyBCaW5kaW5n
c1Rlc3RzOgogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGVuYW1lID0gJ1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwnCiAgICAg
ICAgIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgcGFpbnR3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbCcKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGVuYW1lID0gJ0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAg
ICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdCaW5kaW5nVGVz
dEdsb2JhbENvbnN0cnVjdG9ycy5pZGwnCiAKICAgICAgICAgd29ya19kaXJlY3RvcnkgPSB0ZW1w
ZmlsZS5ta2R0ZW1wKCkKQEAgLTIxMyw5ICsyMTUsMTAgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoK
ICAgICAgICAgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gb3Mu
cGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBp
bnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpCiAgICAgICAgIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9z
LnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2Ug
aW5wdXRfZGlyZWN0b3J5LCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1l
KQogICAgICAgICBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IG9z
LnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5yZXNldF9yZXN1bHRzIGVsc2Ug
aW5wdXRfZGlyZWN0b3J5LCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUpCisgICAgICAgIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
ID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMg
ZWxzZSBpbnB1dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlbmFtZSkKICAgICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0g
b3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3VsdHMgZWxz
ZSBpbnB1dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUp
CiAKLSAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShpbnB1
dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9t
YWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2Vy
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3Rv
cnNfZmlsZSk6CisgICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVt
ZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUs
IHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50
d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxz
Y29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
KToKICAgICAgICAgICAgIHByaW50KCdGYWlsZWQgdG8gZ2VuZXJhdGUgYSBzdXBwbGVtZW50YWwg
ZGVwZW5kZW5jeSBmaWxlLicpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHdvcmtfZGlyZWN0
b3J5KQogICAgICAgICAgICAgcmV0dXJuIC0xCkBAIC0yMzUsNiArMjM4LDggQEAgY2xhc3MgQmlu
ZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UKICAg
ICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygnZ2xvYmFsc2NvcGUnLCB3b3Jr
X2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBG
YWxzZQorICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29w
ZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CisgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2ds
b2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410258</attachid>
            <date>2020-10-01 12:30:32 -0700</date>
            <delta_ts>2020-10-01 14:43:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20201001123031.patch</filename>
            <type>text/plain</type>
            <size>163452</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzZTNkOGYwY2YwN2Jk
MzQ3YjUzNzVkNGQ1MzNmYjdmYjJiODQwNy4uZGY0NjFjMTllYWVhMTI5YjlmMDZmNjhiZWMwY2Rh
ZTAyOGFiYmVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNyBAQAorMjAyMC0wOS0zMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29ya2xl
dDoKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xl
dAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoaXMgYWRkcyBhIHBhcnRpYWwgYnV0IHNwZWMt
Y29tcGxpYW50IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxlKCks
IGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29ya2xl
dHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorCisgICAgICAgIFdoZW4gV29ya2xldC5hZGRNb2R1
bGUoKSBpcyBjYWxsZWQsIHdlIGNyZWF0ZSBhIEF1ZGlvV29ya2V0IHRocmVhZCBhbmQKKyAgICAg
ICAgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSB3aXRoIGl0cyBWTS4gV2UgdGhlbiBhc2sgdGhl
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlCisgICAgICAgIHRvIGZldGNoIGFuZCBpbnZva2UgdGhl
IHdvcmtsZXQgc2NyaXB0LiBOb3RlIHRoYXQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAgICAg
ICAgZG9lcyBOT1QgZmV0Y2ggb3IgaW52b2tlIHRoZSB3b3JrbGV0IHNjcmlwdCB5ZXQgdG8gcmVk
dWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgQ2FsbGluZyBXb3JrbGV0LmFkZE1vZHVsZSgpIGFj
dGl2YXRlcyB0aGUgQXVkaW9Xb3JrbGV0IGFuZCBjYXVzZXMgYXVkaW8gcmVuZGVyaW5nCisgICAg
ICAgIHRvIG9jY3VyIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgQSBmZXcg
aW1wb3J0YW50IHRoaW5ncyB0aGF0IGFyZSBzdGlsbCBtaXNzaW5nIGluIHRoaXMgcGF0Y2g6Cisg
ICAgICAgIC0gRmV0Y2hpbmcgJiBpbnZva2luZyB3b3JrbGV0IHNjcmlwdHMKKyAgICAgICAgLSBQ
cmV0dHkgbXVjaCBhbGwgQVBJIGV4cG9zZWQgdG8gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVzCisg
ICAgICAgIC0gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHN1cHBvcnQKKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMg
dG8gcHJvamV0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvV29ya2xldDo6QXVkaW9Xb3JrbGV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldDo6Y3JlYXRlR2xvYmFsU2NvcGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldDo6cHJveHkgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0Lmg6CisgICAgICAgIFdoZW4gdGhlIFdvcmtsZXQgbmVlZHMgdG8gY3JlYXRlIGEgR2xv
YmFsU2NvcGUsIEF1ZGlvV29ya2xldCB0YWtlcyBjYXJlIG9mIGNyZWF0aW5nIGEgQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkuCisgICAgICAgIFRoZSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSBzdGFydHMgdGhlIEF1ZGlvV29ya2xldFRocmVhZCwgd2hpY2ggY3JlYXRlcyB0aGUgQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuCisgICAgICAgIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHRh
a2VzIGNhcmUgb2YgcG9zdGluZyB0YXNrcyBmcm9tIHRoZSBtYWluIHRocmVhZCB0byB0aGUgQXVk
aW9Xb3JrbGV0VGhyZWFkIGFzIHdlbGwuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbDogQWRkZWQuCisgICAgICAgIEFk
ZCBiYXNpYyBpbXBsZW1lbnRhdGlvbiBmb3IgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6CisgICAg
ICAgIC0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1ZGlvLyNhdWRpb3dvcmtsZXRnbG9iYWxz
Y29wZQorICAgICAgICBOb25lIG9mIHRoZSBXZWIgQVBJIGlzIGV4cG9zZWQgb24gdGhlIEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlIHlldC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICBBZGQg
bmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IGNsYXNzIChTaW1pbGFyIHRvIFdvcmtlck1l
c3NhZ2luZ1Byb3h5KSB3aGljaCBzdGFydHMgdG8gQXVkaW9Xb3JrbGV0VGhyZWFkCisgICAgICAg
ICh3aGljaCBjb25zdHJ1Y3RzIHRoZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSBvbiB0aGF0IHRo
cmVhZCkgYW5kIHRha2VzIGNhcmUgb2YgcG9zdGluZyB0YXNrcyBmcm9tIHRoZSBtYWluCisgICAg
ICAgIHRocmVhZCB0byB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgorCisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5oOiBBZGRlZC4KKyAgICAgICAgQWRkIG5l
dyBjbGFzcyB3aGljaCB3cmFwcyB0aGUgQXVkaW9UaHJlYWQgdXNlZCBieSBBdWRpb1dvcmtldHMu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dCk6CisgICAg
ICAgIFBhc3MgZG9jdW1lbnQgd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIEF1ZGlvV29ya2xldCBzaW5j
ZSBpdCBpcyBub3cgYW4gQWN0aXZlRE9NT2JqZWN0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dCk6CisgICAgICAgIChXZWJD
b3JlOjpGdW5jdGlvbjx2b2lkKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlOjpzZXRDaGFubmVsQ291bnQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmg6CisgICAgICAgIElmIEF1ZGlv
V29ya2xldCBpcyBhY3RpdmUsIHBhc3MgYSBmdW5jdGlvbiB0byBBdWRpb0Rlc3RpbmF0aW9uOjpz
dGFydCgpIHRoYXQgZGlzcGF0Y2hlcyB0byB0aGUKKyAgICAgICAgQXVkaW9Xb3JrbGV0VGhyZWFk
LCBzbyB0aGF0IHRoZSBBdWRpb0Rlc3RpbmF0aW9uIGNhbiBkbyByZW5kZXJpbmcgb24gdGhlIEF1
ZGlvV29ya2xldFRoZWFkIGluc3RlYWQKKyAgICAgICAgb2YgdGhlIGRldmljZSdzIHJlbmRlcmlu
ZyB0aHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGU6OnN0YXJ0UmVuZGVyaW5nKToKKyAgICAgICAgSWYgQXVkaW9Xb3JrbGV0IGlzIGFjdGl2
ZSwgdXNlIHRoZSBBdWRpb1dvcmtsZXQncyBBdWRpb1dvcmtsZXRUaHJlYWQgaW5zdGVhZCBvZiBh
IG5ldyBhdWRpbyB0aHJlYWQKKyAgICAgICAgdG8gZG8gdGhlIG9mZmxpbmUgcmVuZGVyaW5nLgor
CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICBB
ZGQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgc2luY2UgaXQgaXMgZXhwb3NlZCBjb25kaXRpb25h
bGx5IGF0IHJ1bnRpbWUgdG8gQXVkaW9Xb3JrZXRzLgorCisgICAgICAgICogYmluZGluZ3MvanMv
V2ViQ29yZUpTQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1ZNQ2xpZW50RGF0
YTo6SlNWTUNsaWVudERhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVu
dERhdGEuaDoKKyAgICAgICAgQWRkIGNvZGUgdG8gc3VwcG9ydCBBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZSBhcyBhIEdsb2JhbFNjb3BlIGluIG91ciBKUyBiaW5kaW5ncy4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgV2Ugbm93IHN1YmNs
YXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgaW50ZXJmYWNlLiBUaGlzIGFsbG93
cyBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcgorICAgICAgICB0byByZXVzZSBXb3JrZXJSdW5Mb29w
LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUgYXMgZ2xvYmFsIHNjb3BlIGluIG91ciBKUyBiaW5kaW5ncy4K
KworICAgICAgICAqIGNzcy9ET01DU1NQYWludFdvcmtsZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFpbnRXb3JrbGV0OjphZGRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFpbnRXb3Jr
bGV0OjpjcmVhdGVHbG9iYWxTY29wZXMpOgorICAgICAgICAqIGNzcy9ET01DU1NQYWludFdvcmts
ZXQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCk6CisgICAgICAgIFVwZGF0ZSBQYWludFdvcmtsZXQg
Y29kZSBzbyB0aGF0IGl0IGtlZXBzIGJ1aWxkaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vTWVk
aWFTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24u
aDoKKyAgICAgICAgTWFrZSBBdWRpb0Rlc3RpbmF0aW9uIFRocmVhZFNhZmVSZWZDb3VudGVkIHNv
IHRoYXQgaXQgY2FuIGtlZXAgaXRzZWxmIGFsaXZlCisgICAgICAgIHdoZW4gZGlzcGF0Y2hpbmcg
dG8gdGhlIEF1ZGlvV29ya2xldFRocmVhZCBmb3IgcmVuZGVyaW5nLgorCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGlu
YXRpb25Db2NvYTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnNldElzUGxheWluZyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJl
bmRlck9uUmVuZGVyaW5nVGhlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBXaGVuIHdlIGdldCBhIHJlcXVlc3QgdG8g
cmVuZGVyIGF1ZGlvLCB3ZSBub3cgdXNlIHRoZSBmdW5jdGlvbiBwcm92aWRlZCBieQorICAgICAg
ICB0aGUgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlIHRvIGRpc3BhdGNoIHRvIHRoZSBBdWRp
b1dvcmtsZXRUaHJlYWQgd2hlbgorICAgICAgICBuZWVkZWQgKEF1ZGlvV29ya2xldCBpcyBhY3Rp
dmUpIGJlZm9yZSBkb2luZyB0aGUgcmVuZGVyaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaDoKKyAgICAgICAgVXBkYXRl
IGNvZGUgc28gdGhhdCBpdCBrZWVwcyBidWlsZGluZy4KKworICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6
OnVuZGVybHlpbmdUaHJlYWQgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaDoKKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGludGVyZmFjZXMgdGhhdCBhcmUgc3ViY2xh
c3NlZCBieSBXb3JrZXIgYW5kIFdvcmtsZXQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgY2xhc3Nl
cyBpbiBvcmRlciB0byBwcm9tb3RlIGNvZGUgc2hhcmluZy4KKworICAgICAgICAqIHdvcmtlcnMv
V29ya2VyUnVuTG9vcC5jcHA6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmg6Cisg
ICAgICAgIFVwZGF0ZSBXb3JrZXJSdW5Mb29wIHRvIHVzZSBXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSBzbyB0aGF0IGl0IGNhbiBiZQorICAgICAgICByZXVzZWQgYnkgQXVkaW9Xb3JrbGV0VGhy
ZWFkLgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrbGV0OjpXb3JrbGV0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmRvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXQ6OmFkZE1vZHVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0OjpmaW5pc2hQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgICogd29ya2xldHMvV29y
a2xldC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6cHJveGllcyBjb25zdCk6CisgICAg
ICAgICogd29ya2xldHMvV29ya2xldC5pZGw6CisgICAgICAgIEFkZCBpbml0aWFsIGltcGxlbWVu
dGF0aW9uIGZvciBhZGRNb2R1bGUoKToKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3MtaG91
ZGluaS5vcmcvd29ya2xldHMvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQorICAgICAgICBNYWtlIFdv
cmtsZXQgYW4gQWN0aXZlRE9NT2JqZWN0IHNpbmNlIGl0IG5lZWRzIHRvIHJlc29sdmUgYSBKUyBw
cm9taXNlIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2xl
dEdsb2JhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZXZh
bHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpjb21wbGV0ZVVS
TCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5k
SW52b2tlU2NyaXB0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6aXNBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSBjb25zdCk6CisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlk
bDoKKyAgICAgICAgVXBkYXRlIFdvcmtsZXRHbG9iYWxTY29wZSBzbyB0aGF0IGl0IGNhbiBiZSBz
dWJjbGFzc2VkIGJ5IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIGFuZCBub3QKKyAgICAgICAgYmUg
UGFpbnRXb3JrbGV0LXNwZWNpZmljLgorCisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBXb3JrbGV0R2xvYmFsU2NvcGVQcm94
eSBpbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgV29ya2xldEdsb2JhbFNjb3BlIGludGVy
ZmFjZS4KKyAgICAgICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBjbGFzcyBpcyB0byBwb3N0IHRhc2tz
IHRvIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUsIGFic3RyYWN0aW5nIGF3YXkKKyAgICAgICAgcG90
ZW50aWFsIHRocmVhZGluZyBjb21wbGV4aXR5LiBOb3RlIHRoYXQgQXVkaW9Xb3JrZXRzIHVzZSB0
aHJlYWRpbmcgd2hpbGUgUGFpbnRXb3JrbGV0cworICAgICAgICBkbyBub3QuCisKKyAgICAgICAg
KiB3b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0UGVuZGluZ1Rhc2tzOjpXb3JrbGV0UGVuZGluZ1Rhc2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtsZXRQZW5kaW5nVGFza3M6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtsZXRQZW5kaW5nVGFza3M6OmRlY3JlbWVudENvdW50ZXIpOgorICAgICAgICAqIHdvcmts
ZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3Jr
bGV0UGVuZGluZ1Rhc2tzOjpjcmVhdGUpOgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb24gZm9y
OgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8jcGVu
ZGluZy10YXNrcy1zdHJ1Y3QKKyAgICAgICAgV2hpbGUgaXQgaXMgbm90IHN0cmljdGx5IG5lZWRl
ZCByaWdodCBmb3IgQXVkaW9Xb3JrbGV0IChiZWNhdXNlIHRoZXJlIGlzIGFsd2F5cyBhIHNpbmds
ZQorICAgICAgICBXb3JrbGV0R2xvYmFsU2NvcGUpLCBpdCB3aWxsIGJlIG5lZWRlZCBvbmNlIHdl
IGhhdmUgcHJvcGVyIHN1cHBvcnQgZm9yIFBhaW50V29ya2xldHMuCisgICAgICAgIFBhaW50V29y
a2xldHMgY2FuIGhhdmUgc2V2ZXJhbCBXb3JrbGV0R2xvYmFsU2NvcGVzLiBJbiB0aGUgbWVhbiB0
aW1lLCBpdCBhbGxvd3MgdXMgdG8KKyAgICAgICAgaGF2ZSBjb2RlIHRoYXQgbWF0Y2hlcyB0aGUg
c3BlY2lmaWNhdGlvbiB0ZXh0IG1vcmUgY2xvc2VseS4KKworICAgICAgICAqIHdvcmtsZXRzL1dv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVsZWFzZUhlYXBBY2Nlc3MpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFjcXVpcmVIZWFwQWNjZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjphZGRUaW1lclNldE5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVt
b3ZlVGltZXJTZXROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlw
dENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmlzVGVybWluYXRpbmdFeGVjdXRpb24gY29u
c3QpOgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAg
ICAgIFVwZGF0ZSBXb3JrbGV0U2NyaXB0Q29udHJvbGxlciBzbyB0aGF0IGl0IGNhbiBiZSB1c2Vk
IGJ5IEF1ZGlvV29ya2xldHMgYW5kIG5vdCBqdXN0CisgICAgICAgIFBhaW50V29ya2xldHMuCisK
IDIwMjAtMTAtMDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBBZGQgbWlzc2luZyBndWFyZCBhcm91bmQgTW9kZXJuUGF0
aCB1c2FnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggODUzNTg3YzBmMTc1ZWM5Njg4ZjFlNTdjZWI3NzA4MTRjZDhk
N2NmYy4uZDA1ZGU1YmQ0ZDgwNjBjODA1NjYwM2QwMWU0MDM4ZjEyMjAzMDI0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHRvIG1hdGNoIHdoYXQgd2FzIGRvbmUgaW4gQXVk
aW9EZXN0aW5hdGlvbkNvY29hLgorICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkg
aXMgdXNlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVkLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3ApOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRlckJ1ZmZlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDoKKwogMjAy
MC0xMC0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVk
aWFSZWNvcmRlciBzaG91bGQgc3VwcG9ydCBNZWRpYVJlY29yZGVyT3B0aW9ucy5taW1lVHlwZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDE3ZGFkZmU1MDFkMGUyZjU0NTRkNGE4ZmVk
NjJmYWM2ZDkwMWY4M2IuLmFmMGVmOTc4MDNlYzY4ZjA3Y2M3YmUxYTE1MWY4YTkyODRiM2VjNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wOS0z
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBp
bmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbToKKwogMjAyMC0wOS0yOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW1ByZWZlcmVuY2VzXSBBZG9wdCBzaGFyZWQgcHJlZmVyZW5jZXMgY29uZmlndXJh
dGlvbiBhbmQgc2NyaXB0IGluIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4
IDJjNTMzNzNkNjExZWU1MzQzYjcxMTdkMGY3OGM2MjU0ZTA3NmU1NTMuLjYwZTVkNzFjMWNjODU2
MGRhMzc2MjhlNTgzZmE3MjU1MDUxMDI4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisKIDIwMjAtMDktMjUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0TGVnYWN5
IHNob3VsZCBjYWxsIFBhZ2U6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNGRmY2ViZjI0NDVhNmM0YTVlOTYzNDg1ZTQ2MzU1NDZmNzZjZjkwZS4uMTk0
MzgwMjNjNDM1OGIwNjA2MTAzYzY1YzQ3ZDU4OWY3ZWU1YzM0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTQ3NCw2ICs0NzQsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXQuaWRsCisgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCkBAIC0xNzY2LDYgKzE3NjcsNyBAQCBzZXQoREVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9Lwogc2V0KFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1BhaW50V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKK3NldChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogCiBzZXQoV2ViQ29yZV9JTlRFUkZBQ0VfTElC
UkFSSUVTIFdlYkNvcmUpCiBzZXQoV2ViQ29yZV9JTlRFUkZBQ0VfSU5DTFVERV9ESVJFQ1RPUklF
UyAke1dlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9KQpAQCAtMTk1MSw3ICsx
OTUzLDggQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29yZUJpbmRpbmdzCiAgICAgICAgIC0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNBVEVEV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tc2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1NFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICR7V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQotICAgICAgICAtLXBh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke1BBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSkKKyAgICAgICAgLS1wYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRX0KKyAgICAgICAgLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCiBsaXN0KEFQ
UEVORCBXZWJDb3JlX0RFUEVOREVOQ0lFUyBXZWJDb3JlQmluZGluZ3MpCiAKIGlmIChFTkFCTEVf
V0VCSU5TUEVDVE9SVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCA0ZmMwNTQ0ZjljZDk3NjFhZTAxZGNiNjUxNDhjMzRhMzgyYmVhYmQ5
Li5hOGRjZjk2OTgyYTQwODI5OTc0NTgyNTgzNGI3MTYwYjQ1ZDI3ZjVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMzMCw2ICszMzAs
NyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50
SW5pdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVz
dGFtcC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Lmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9wdGlv
bnMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IDQ0MjE2MDQ2N2RlMTY1ZTc1ZDU0NDk3NTBmZGRhMTNjZWRjNzQ2ODAuLjM2Nzk1ZWE0
MTMzOGVkZGE4NGFkMjgzNGY2ODhkZWQzMjA0ZGUwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xLDQgKzEsNSBAQAogIyBUaGlz
IGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyBzY3JpcHQuCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVz
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJv
cGVydHlOYW1lcy5oCkBAIC0yMDcsNiArMjA4LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1RyYWNrTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNv
dXJjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1
ZGlvV29ya2xldC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9Xb3JrbGV0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXVkaW9Xb3JrbGV0Tm9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggZGIxZDZhYTQ2NGEzYTIwMTQ4NTk2MWVmNzExNTM2MTU3ZTNmMGFi
Ni4uMmMxYzEwODlhZDVhYjZiNzU5ZjUwNmRjMWFlOTAzY2ZmMjA2MDZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC00MDcsNiArNDA3LDcgQEAgSlNfQklORElOR19JRExTID0g
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5v
ZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZU9w
dGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5pZGwgXApAQCAtMTc0OCw2ICsxNzQ5LDcgQEAgREVESUNBVEVEV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUgPSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnUK
IFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSA9IFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSA9IFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwKIFBBSU5UV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsCitBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogSURMX0ZJTEVT
X1RNUCA9IGlkbF9maWxlcy50bXAKIElETF9BVFRSSUJVVEVTX0ZJTEUgPSAkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCiAKQEAgLTE3NjgsMTMgKzE3NzAsMTQg
QEAgSURMX0lOVEVSTUVESUFURV9GSUxFUyA9IFwKICAgICAkKERFRElDQVRFRFdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgXAotICAgICQoUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEUpCisgICAgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkg
XAorICAgICQoQVVESU9XT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpCiAjCiBJ
RExfSU5URVJNRURJQVRFX1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChJRExfSU5URVJNRURJQVRF
X0ZJTEVTKSkKIAogJChJRExfSU5URVJNRURJQVRFX1BBVFRFUk5TKSA6ICQoUFJFUFJPQ0VTU19J
RExTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChKU19CSU5ESU5HX0lETFMpICQo
RkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykgRGVyaXZlZFNvdXJjZXMu
bWFrZSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMpCiAJJChmb3Jl
YWNoIGYsJChKU19CSU5ESU5HX0lETFMpLEBlY2hvICQoZik+PiQoSURMX0ZJTEVTX1RNUCkkKE5M
KSkKLQkkKFBFUkwpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMu
cGwgLS1kZWZpbmVzICIkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMpIExBTkdVQUdFX0pB
VkFTQ1JJUFQiIC0taWRsRmlsZU5hbWVzTGlzdCAkKElETF9GSUxFU19UTVApIC0taWRsQXR0cmli
dXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lG
aWxlICQoU1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJG
aWxlICQoSVNPX1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxl
ICQoV0lORE9XX0NPTlNUUlVDVE9SU19GSUxFKSAtLXdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKERFRElDQVRFRFdPUktFUkdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGUgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGUgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1zdXBw
bGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQTEVNRU5UQUxfTUFLRUZJTEVfREVQUykKKwkkKFBF
UkwpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgLS1kZWZp
bmVzICIkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQi
IC0taWRsRmlsZU5hbWVzTGlzdCAkKElETF9GSUxFU19UTVApIC0taWRsQXR0cmlidXRlc0ZpbGUg
JChJRExfQVRUUklCVVRFU19GSUxFKSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICQoU1VQ
UExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRSkgLS1pc29TdWJzcGFjZXNIZWFkZXJGaWxlICQoSVNP
X1NVQlNQQUNFU19IRUFERVJfRklMRSkgLS13aW5kb3dDb25zdHJ1Y3RvcnNGaWxlICQoV0lORE9X
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAk
KFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWRlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BFX0NP
TlNUUlVDVE9SU19GSUxFKSAtLXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJChTRVJWSUNFV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSkgLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChQ
QUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS1hdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJChBVURJT1dPUktMRVRHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRSkgLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMgJChTVVBQTEVNRU5UQUxf
TUFLRUZJTEVfREVQUykKIAkkKERFTEVURSkgJChJRExfRklMRVNfVE1QKQogCiBKUyUuY3BwIEpT
JS5oIDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUp
ICQoSURMX0lOVEVSTUVESUFURV9GSUxFUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVf
REVQRU5ERU5DSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXQuY3BwCmluZGV4IGE5OTRhMjRmYTFmMzgxZDI5MGNkYzkwNmNjYjFlODcxMGNjZWJl
ZmMuLmZjYjk5YTY3NmZiYTUyN2ZjYzUxNGNkMTg1MmMyNmM0NWUwYjFiYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKQEAgLTMxLDE1
ICszMSwzNCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0
LmgiCiAKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkK
K1JlZjxBdWRpb1dvcmtsZXQ+IEF1ZGlvV29ya2xldDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKK3sKKyAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldChkb2N1
bWVudCkpOworICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiB3b3Jr
bGV0OworfQorCitBdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xldChEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBXb3JrbGV0KGRvY3VtZW50KQoreworfQorCitWZWN0b3I8UmVmPFdvcmtsZXRHbG9i
YWxTY29wZVByb3h5Pj4gQXVkaW9Xb3JrbGV0OjpjcmVhdGVHbG9iYWxTY29wZXMoKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldCk7CisgICAgLy8gV2ViQXVkaW8gdXNl
cyBhIHNpbmdsZSBnbG9iYWwgc2NvcGUuCisgICAgcmV0dXJuIHsgQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHk6OmNyZWF0ZSgqdGhpcykgfTsKIH0KIAotQXVkaW9Xb3JrbGV0OjpBdWRpb1dvcmts
ZXQoKQorQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkqIEF1ZGlvV29ya2xldDo6cHJveHkoKSBj
b25zdAogeworICAgIGF1dG8mIHByb3hpZXMgPSB0aGlzLT5wcm94aWVzKCk7CisgICAgaWYgKHBy
b3hpZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93
bmNhc3Q8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+KHByb3hpZXMuZmlyc3QoKS5wdHIoKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCmluZGV4IDU1MTE1ZTMxMmE5NmRmYzhiNTNkYmM3MGIw
OTQwNTZiMTMyOTY2ZGIuLjgwM2ZiYjc0ZDlkNjAzZTM2NGRkNDNmNjhiZjg1NDkxNDEyOTg3ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaApA
QCAtMzMsMTIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVkaW9X
b3JrbGV0IDogcHVibGljIFdvcmtsZXQgeworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHk7CisKK2NsYXNzIEF1ZGlvV29ya2xldCBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJl
ZjxBdWRpb1dvcmtsZXQ+IGNyZWF0ZShEb2N1bWVudCYpOworCisgICAgQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkqIHByb3h5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9Xb3JrbGV0
KCk7CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0KERvY3VtZW50Jik7CisKKyAgICAvLyBXb3Jr
bGV0LgorICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9i
YWxTY29wZXMoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVlYWYxODY2MDFhMjQ2ZjY1MmNkNzJiMDA0Y2JiNGE5
NDRmZThiYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZS5oIgorCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworCitBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFk
JiB0aHJlYWQsIGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorICAgIDogV29y
a2xldEdsb2JhbFNjb3BlKHBhcmFtZXRlcnMud2luZG93VVJMLCBwYXJhbWV0ZXJzLmpzUnVudGlt
ZUZsYWdzKQorICAgICwgbV90aHJlYWQodGhyZWFkKQoreworICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOworfQorCitBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6fkF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlKCkgPSBkZWZhdWx0OworCitUaHJlYWQqIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjp1
bmRlcmx5aW5nVGhyZWFkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aHJlYWQtPnRocmVhZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
RElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNWJmYTRjZWM2YWZkYmYyZjMyY2Uz
OTZhN2RiZDIzM2FmOTE3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTAsMCArMSw2NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3Bl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFkOwor
CitzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnM7CisKK2NsYXNzIEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29wZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gY3JlYXRlKEF1ZGlvV29ya2xldFRocmVhZCYgdGhyZWFk
LCBjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKHRocmVhZCwgcGFyYW1l
dGVycykpOworICAgIH0KKyAgICB+QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKTsKKworICAgIFRo
cmVhZCogdW5kZXJseWluZ1RocmVhZCgpIGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlKEF1ZGlvV29ya2xldFRocmVhZCYsIGNvbnN0IFdvcmtsZXRQ
YXJhbWV0ZXJzJik7CisKKyAgICBib29sIGlzQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBt
X3RocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSkKK3N0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSB7IHJldHVybiBpczxXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpICYmIGRv
d25jYXN0PFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkuaXNBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZSgpOyB9CitzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V29y
a2xldEdsb2JhbFNjb3BlJiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Yz
MmZjOGVhYTJmODRiMzY2NTVhOWJlMDExNzBlZmE1MGZkNWMyZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEV4cG9zZWQ9QXVkaW9Xb3JrbGV0LAorICAgIENvbmRpdGlvbmFs
PVdFQl9BVURJTywKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgSW1wbGljaXRU
aGlzLAorICAgIElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0LAorICAgIElzSW1tdXRh
YmxlUHJvdG90eXBlRXhvdGljT2JqZWN0T25Qcm90b3R5cGUsCisgICAgR2xvYmFsPShXb3JrbGV0
LEF1ZGlvV29ya2xldCksCitdIGludGVyZmFjZSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IFdv
cmtsZXRHbG9iYWxTY29wZSB7CisgICAgLy8gSW1wbGVtZW50IEFQSS4KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ZGZjZjc4ZDQyYjRhNGI0YjdjYWVmZTc3YTgz
ZTA2YjEyZWMwMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1l
c3NhZ2luZ1Byb3h5LmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNpbmNsdWRlICJB
dWRpb1dvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rh
c2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFdvcmtsZXRQYXJhbWV0ZXJz
IGdlbmVyYXRlV29ya2xldFBhcmFtZXRlcnMoQXVkaW9Xb3JrbGV0JiB3b3JrbGV0KQoreworICAg
IGF1dG8qIGRvY3VtZW50ID0gd29ya2xldC5kb2N1bWVudCgpOworICAgIGF1dG8qIGZyYW1lID0g
ZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgYXV0byBqc1J1bnRpbWVGbGFncyA9IGZyYW1lID8gZnJh
bWUtPnNldHRpbmdzKCkuamF2YVNjcmlwdFJ1bnRpbWVGbGFncygpIDogSlNDOjpSdW50aW1lRmxh
Z3MoKTsKKworICAgIHJldHVybiB7CisgICAgICAgIGRvY3VtZW50LT51cmwoKSwKKyAgICAgICAg
anNSdW50aW1lRmxhZ3MKKyAgICB9OworfQorCitBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0JiB3b3JrbGV0KQorICAgIDog
bV93b3JrbGV0KG1ha2VXZWFrUHRyKHdvcmtsZXQpKQorICAgICwgbV93b3JrbGV0VGhyZWFkKEF1
ZGlvV29ya2xldFRocmVhZDo6Y3JlYXRlKGdlbmVyYXRlV29ya2xldFBhcmFtZXRlcnMod29ya2xl
dCkpKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3dvcmtsZXRUaHJl
YWQtPnN0YXJ0KCk7Cit9CisKK0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojp+QXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit7CisgICAgbV93
b3JrbGV0VGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1v
ZGUpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZhN2FkZjRmMjgzODAzYWI5NDUxMDNkOWYzMmE2Zjg3OTFiYTE0OWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3Nh
Z2luZ1Byb3h5LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8p
CisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldDsKK2Ns
YXNzIEF1ZGlvV29ya2xldFRocmVhZDsKKworY2xhc3MgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlUHJveHkgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk+IGNyZWF0ZShBdWRpb1dvcmtsZXQmIHdv
cmtsZXQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eSh3b3JrbGV0KSk7CisgICAgfQorCisgICAgfkF1ZGlvV29ya2xldE1lc3Nh
Z2luZ1Byb3h5KCk7CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHRoZSBtYWluIHRo
cmVhZCB0byBwb3N0IHRhc2sgYmFjayB0byB0aGUgd29ya2xldCB0aHJlYWQuCisgICAgYm9vbCBw
b3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0Jik7CisKKyAgICBi
b29sIGlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CisKKyAgICBXZWFrUHRyPEF1ZGlvV29ya2xldD4gbV93b3JrbGV0OworICAgIFJlZjxB
dWRpb1dvcmtsZXRUaHJlYWQ+IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3Jr
bGV0TWVzc2FnaW5nUHJveHkoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTYyNjRj
NmVkNmRkNGM5NjRlMjAyOGYwNTc2M2ZkOGFjNWE0MjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0w
LDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVk
ZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJGbG9hdGluZ1Bv
aW50RW52aXJvbm1lbnQuaCIKKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xl
dFBhcmFtZXRlcnMgV29ya2xldFBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdvcmtsZXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgd2luZG93VVJMLmlzb2xhdGVk
Q29weSgpLAorICAgICAgICBqc1J1bnRpbWVGbGFncworICAgIH07Cit9CisKK0F1ZGlvV29ya2xl
dFRocmVhZDo6QXVkaW9Xb3JrbGV0VGhyZWFkKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQorICAgIDogbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMuaXNvbGF0ZWRDb3B5KCkpCit7
Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpzdGFydCgpCit7CisgICAgYXV0byBsb2Nr
ID0gaG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZFdvcmtsZXRHbG9iYWxTY29wZUxvY2spOwor
CisgICAgUmVmPFRocmVhZD4gdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIldlYkNvcmU6IEF1ZGlv
V29ya2xldCIsIFt0aGlzXSB7CisgICAgICAgIHdvcmtsZXRUaHJlYWQoKTsKKyAgICB9LCBUaHJl
YWRUeXBlOjpBdWRpbyk7CisgICAgLy8gRm9yY2UgdGhlIFRocmVhZCBvYmplY3QgdG8gYmUgaW5p
dGlhbGl6ZWQgZnVsbHkgYmVmb3JlIHN0b3JpbmcgaXQgdG8gbV90aHJlYWQgKGFuZCBiZWNvbWlu
ZyB2aXNpYmxlIHRvIG90aGVyIHRocmVhZHMpLgorICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7
CisgICAgbV90aHJlYWQgPSBXVEZNb3ZlKHRocmVhZCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0
VGhyZWFkOjp3b3JrbGV0VGhyZWFkKCkKK3sKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKKworICAgIC8vIFByb3BhZ2F0ZSB0aGUgbWFpblRocmVhZCdzIGZlbnYgdG8g
d29ya2Vycy4KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIEZsb2F0aW5nUG9pbnRFbnZp
cm9ubWVudDo6c2luZ2xldG9uKCkucHJvcGFnYXRlTWFpblRocmVhZEVudmlyb25tZW50KCk7Cisj
ZW5kaWYKKworI2lmIFVTRShHTElCKQorICAgIEdSZWZQdHI8R01haW5Db250ZXh0PiBtYWluQ29u
dGV4dCA9IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7CisgICAgZ19tYWluX2NvbnRl
eHRfcHVzaF90aHJlYWRfZGVmYXVsdChtYWluQ29udGV4dC5nZXQoKSk7CisjZW5kaWYKKworICAg
IFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyOworICAgIHsKKyAgICAg
ICAgYXV0byBsb2NrID0gaG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZFdvcmtsZXRHbG9iYWxT
Y29wZUxvY2spOworICAgICAgICBtX3dvcmtsZXRHbG9iYWxTY29wZSA9IEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlOjpjcmVhdGUoKnRoaXMsIG1fcGFyYW1ldGVycyk7CisKKyAgICAgICAgc2NyaXB0
Q29udHJvbGxlciA9IG1fd29ya2xldEdsb2JhbFNjb3BlLT5zY3JpcHQoKTsKKworICAgICAgICBp
ZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIHdvcmtlciB3
YXMgdGVybWluYXRlZCBiZWZvcmUgdGhlIHRocmVhZCBoYWQgYSBjaGFuY2UgdG8gcnVuLiBTaW5j
ZSB0aGUgY29udGV4dCBkaWRuJ3QgZXhpc3QgeWV0LAorICAgICAgICAgICAgLy8gZm9yYmlkRXhl
Y3V0aW9uKCkgY291bGRuJ3QgYmUgY2FsbGVkIGZyb20gc3RvcCgpLgorICAgICAgICAgICAgc2Ny
aXB0Q29udHJvbGxlci0+c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOworICAgICAgICAg
ICAgc2NyaXB0Q29udHJvbGxlci0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBydW5FdmVudExvb3AoKTsKKworI2lmIFVTRShHTElCKQorICAgIGdfbWFpbl9jb250
ZXh0X3BvcF90aHJlYWRfZGVmYXVsdChtYWluQ29udGV4dC5nZXQoKSk7CisjZW5kaWYKKworICAg
IFJlZlB0cjxUaHJlYWQ+IHByb3RlY3RvciA9IG1fdGhyZWFkOworCisgICAgQVNTRVJUKG1fd29y
a2xldEdsb2JhbFNjb3BlLT5oYXNPbmVSZWYoKSk7CisKKyAgICBSZWZQdHI8QXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGU+IHdvcmtsZXRHbG9iYWxTY29wZVRvRGVsZXRlOworICAgIHsKKyAgICAgICAg
Ly8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3Qg
Y2hhbmdlIG1fd29ya2VyR2xvYmFsU2NvcGUKKyAgICAgICAgLy8gd2hpbGUgV29ya2VyVGhyZWFk
OjpzdG9wIGlzIGFjY2Vzc2luZyBpdC4KKyAgICAgICAgYXV0byBsb2NrID0gaG9sZExvY2sobV90
aHJlYWRDcmVhdGlvbkFuZFdvcmtsZXRHbG9iYWxTY29wZUxvY2spOworCisgICAgICAgIC8vIERl
bGF5IHRoZSBkZXN0cnVjdGlvbiBvZiB0aGUgV29ya2VyR2xvYmFsU2NvcGUgY29udGV4dCB1bnRp
bCBhZnRlciB3ZSd2ZSB1bmxvY2tlZCB0aGUKKyAgICAgICAgLy8gbV90aHJlYWRDcmVhdGlvbkFu
ZFdvcmtlckdsb2JhbFNjb3BlTXV0ZXguIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgZGVzdHJ1Y3Rp
bmcgdGhlCisgICAgICAgIC8vIGNvbnRleHQgd2lsbCB0cmlnZ2VyIHRoZSBtYWluIHRocmVhZCB0
byByYWNlIGFnYWluc3QgdXMgdG8gZGVsZXRlIHRoZSBXb3JrZXJUaHJlYWQKKyAgICAgICAgLy8g
b2JqZWN0LCBhbmQgdGhlIFdvcmtlclRocmVhZCBvYmplY3Qgb3ducyB0aGUgbXV0ZXggd2UgbmVl
ZCB0byB1bmxvY2sgYWZ0ZXIgdGhpcy4KKyAgICAgICAgd29ya2xldEdsb2JhbFNjb3BlVG9EZWxl
dGUgPSBXVEZNb3ZlKG1fd29ya2xldEdsb2JhbFNjb3BlKTsKKyAgICB9CisKKyAgICAvLyBUaGUg
YmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdpbGwgaW4g
dHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgorICAgIC8vIFdlIGNhbm5vdCBsZXQgYW55IG9i
amVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRocmVhZCB3
aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgorICAgIHdvcmtsZXRHbG9iYWxT
Y29wZVRvRGVsZXRlID0gbnVsbHB0cjsKKworICAgIC8vIFNlbmQgdGhlIGxhc3QgV29ya2VyVGhy
ZWFkIFJlZiB0byBiZSBEZXJlZidlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsgfSk7CisK
KyAgICAvLyBUaGUgdGhyZWFkIG9iamVjdCBtYXkgYmUgYWxyZWFkeSBkZXN0cm95ZWQgZnJvbSBu
b3RpZmljYXRpb24gbm93LCBkb24ndCB0cnkgdG8gYWNjZXNzICJ0aGlzIi4KKyAgICBwcm90ZWN0
b3ItPmRldGFjaCgpOworfQorCit2b2lkIEF1ZGlvV29ya2xldFRocmVhZDo6cnVuRXZlbnRMb29w
KCkKK3sKKyAgICAvLyBEb2VzIG5vdCByZXR1cm4gdW50aWwgdGVybWluYXRlZC4KKyAgICBtX3J1
bkxvb3AucnVuKG1fd29ya2xldEdsb2JhbFNjb3BlLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMyOGRiZTI3MzEwMzFiY2E1Mjc4ODAxMzQ2YzVhZGNmNGNlYTBiZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFRocmVh
ZC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1
ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlOworCitzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnMgeworcHVi
bGljOgorICAgIFVSTCB3aW5kb3dVUkw7CisgICAgSlNDOjpSdW50aW1lRmxhZ3MganNSdW50aW1l
RmxhZ3M7CisKKyAgICBXb3JrbGV0UGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25zdDsKK307
CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxBdWRpb1dvcmtsZXRUaHJlYWQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29y
a2xldFRocmVhZD4gY3JlYXRlKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0VGhyZWFkKHBh
cmFtZXRlcnMpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXb3JrZXJSdW5M
b29wJiBydW5Mb29wKCkgeyByZXR1cm4gbV9ydW5Mb29wOyB9CisgICAgVGhyZWFkKiB0aHJlYWQo
KSBjb25zdCB7IHJldHVybiBtX3RocmVhZC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IEF1ZGlvV29ya2xldFRocmVhZChjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYpOworCisgICAg
dm9pZCBydW5FdmVudExvb3AoKTsKKyAgICB2b2lkIHdvcmtsZXRUaHJlYWQoKTsKKworICAgIFJl
ZlB0cjxUaHJlYWQ+IG1fdGhyZWFkOworICAgIFdvcmtlclJ1bkxvb3AgbV9ydW5Mb29wOworICAg
IFdvcmtsZXRQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKKyAgICBSZWZQdHI8QXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGU+IG1fd29ya2xldEdsb2JhbFNjb3BlOworICAgIExvY2sgbV90aHJlYWRDcmVh
dGlvbkFuZFdvcmtsZXRHbG9iYWxTY29wZUxvY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggMDJiNWZhMDRm
ZWRkOTNlZTljM2EyZDk1MzAzMDdkMjEwOTQ0ZjNlNi4uY2RjMDNjZmFjNGQ4NzdhNzBlYzUzZWFi
OGJhOTNjYzM3NTYwODdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgQmFzZUF1ZGlv
Q29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEF1ZGlv
Q29udGV4dE9wdGlvbnMKICAgICAsIG1fbG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpKQogICAgICwg
bV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgotICAgICwgbV93
b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkpCisgICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3Jr
bGV0OjpjcmVhdGUoZG9jdW1lbnQpKQogICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRp
YVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKSwgKnRoaXMpKQogewogICAgIC8vIEFjY29yZGluZyB0byBzcGVjIEF1ZGlvQ29udGV4dCBt
dXN0IGRpZSBvbmx5IGFmdGVyIHBhZ2UgbmF2aWdhdGUuCkBAIC0xNjEsNyArMTYxLDcgQEAgQmFz
ZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMKICAgICAsIG1fbG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgotICAg
ICwgbV93b3JrbGV0KEF1ZGlvV29ya2xldDo6Y3JlYXRlKCkpCisgICAgLCBtX3dvcmtsZXQoQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoZG9jdW1lbnQpKQogICAgICwgbV9pc09mZmxpbmVDb250ZXh0KHRy
dWUpCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiAgICAg
LCBtX3JlbmRlclRhcmdldChXVEZNb3ZlKHJlbmRlclRhcmdldCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKaW5kZXggNzUxZGU5MThjZTFkYzM2YTFjNzllOTUwM2M5MjhmNGY4OWYwOTZi
Yy4uYWUzNGZmYmEyM2NkYTE2Y2Q5YWE3NDYwZTdhODcyZTc5ODIxM2U4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsMTAgKzMwLDEzIEBACiAKICNpbmNsdWRlICJBdWRp
b0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uLmgiCisjaW5jbHVkZSAiQXVk
aW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC05OSwxOCArMTAyLDMw
IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dChjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQpCiAgICAgICAgICAgICAvLyBSZS1jcmVhdGUgZGVzdGluYXRp
b24uCiAgICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAgICAgICAgICBjcmVh
dGVEZXN0aW5hdGlvbigpOwotICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAg
ICAgICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5j
dGlvbigpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAorRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmRpc3BhdGNoVG9SZW5kZXJU
aHJlYWRGdW5jdGlvbigpCit7CisgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQo
KS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAgICAgIHJldHVybiBbd29ya2xldFByb3h5
ID0gbWFrZVJlZigqd29ya2xldFByb3h5KV0oRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKSB7
CisgICAgICAgICAgICB3b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2Jh
bFNjb3BlKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKTsKKyAgICAgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworICAgIH0KKyAg
ICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKIHsKICAgICBBU1NFUlQoaXNJbml0aWFsaXplZCgp
KTsKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAg
IG1fZGVzdGluYXRpb24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsK
ICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTgsNyArMTMzLDcgQEAgdm9pZCBEZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGU6OnJlc3VtZShGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQog
ewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmIChpc0luaXRpYWxpemVkKCkp
Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgIG1fZGVzdGluYXRpb24t
PnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICBjb250ZXh0KCku
cG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwogfQogCkBAIC0xNjMsNyArMTc4LDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzZXRDaGFubmVsQ291
bnQodW5zaWduZWQgY2hhbm5lbEMKICAgICAgICAgLy8gUmUtY3JlYXRlIGRlc3RpbmF0aW9uLgog
ICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7CiAgICAgICAgIGNyZWF0ZURlc3RpbmF0aW9u
KCk7Ci0gICAgICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgICAgIG1fZGVzdGluYXRp
b24tPnN0YXJ0KGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbigpKTsKICAgICB9CiAKICAg
ICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggZWRlMTUzM2MxNjQ4
MjljZjFlMjNiYTkzYzI5YTg4NjM0MjAzZTRkMi4uN2Q2NWUyNWViNTU0MWE5Nzc2ZDUwMDZlMTcy
ZDIwMDViNDNkZThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC00Nyw2ICs0Nyw4
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJh
c2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4pOwogICAgIHZvaWQgY3JlYXRlRGVzdGlu
YXRpb24oKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gZGlzcGF0
Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCk7CisKICAgICB2b2lkIGluaXRpYWxpemUoKSBmaW5h
bDsKICAgICB2b2lkIHVuaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCkgZmluYWw7CkBAIC02MSw3ICs2Myw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50KCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc1BsYXlpbmcoKSBmaW5hbDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3Rp
bmF0aW9uOwogICAgIFN0cmluZyBtX2lucHV0RGV2aWNlSWQ7CiAgICAgdW5zaWduZWQgbV9udW1i
ZXJPZklucHV0Q2hhbm5lbHMgeyAwIH07CiAgICAgZmxvYXQgbV9zYW1wbGVSYXRlIHsgMCB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGZhYTMzNjUyZWRiMzc2M2IzOWMxZjZi
YjQ3ZjZiYjI0ZmEwM2M0MjAuLjUzYjU1NDEzZTkyNjFiNzcwZWY3YWMzYmFhZDZkODZlMGM4Mjll
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMxLDcgKzMxLDEwIEBACiAj
aW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRl
ICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkF1ZGlvV29ya2xldC5oIgorI2luY2x1ZGUg
IkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CkBAIC05Niw5ICs5OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE9mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9
IHRydWU7CiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CiAKLSAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRpYWxpemUgaGVyZT8KLSAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVh
dGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0
ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIG9mZlRocmVhZFJlbmRlcmluZyA9IFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgYXV0byByZXN1bHQgPSBvZmZsaW5lUmVuZGVyKCk7CiAgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwgY3VycmVudFNhbXBsZUZyYW1lID0gbV9jdXJyZW50U2Ft
cGxlRnJhbWUsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7CiAgICAg
ICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSBmYWxzZTsKQEAgLTExNCw3ICsxMTUsMTcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRl
cmluZygpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0p
OwotICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlvKTsKKyAgICB9OworCisgICAgaWYgKGF1dG8qIHdv
cmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKSB7CisgICAgICAg
IHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW29mZlRo
cmVhZFJlbmRlcmluZyA9IFdURk1vdmUob2ZmVGhyZWFkUmVuZGVyaW5nKV0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgb2ZmVGhyZWFkUmVuZGVyaW5nKCk7
CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICByZXR1
cm4geyB9OworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgbGltaXQg
dGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBhdWRpby4KKyAgICBt
X3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRlcmVyIiwgV1RGTW92
ZShvZmZUaHJlYWRSZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CiAgICAgcmV0dXJuIHsg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NWNjMTA4NTVkOGJhZmVkN2E0NTNjNGJlOWY0ZDky
ZGUyNDUzN2JiLi5jN2VjZmRkMTU1YzUyODBkNTg1NGJmYjUyYmViZWEwMjg0YWRiN2EzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMjA1LDcgKzIwNSwxMCBAQCBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJv
Y2Vzc2luZ0V2ZW50LmNwcAogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5v
ZGUuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcAogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKK01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcAogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcAogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJuZWwuY3BwCiBNb2R1
bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC0yNTc5LDYgKzI1ODIsNyBAQCB3
b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKIHdvcmtsZXRzL1dvcmtsZXQuY3Bw
CiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKIHdvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAKK3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwCiB3b3JrbGV0cy9X
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
CiB4bWwvRE9NUGFyc2VyLmNwcApAQCAtMjY4MCw2ICsyNjg0LDcgQEAgSlNBdWRpb1RpbWVzdGFt
cC5jcHAKIEpTQXVkaW9UcmFjay5jcHAKIEpTQXVkaW9UcmFja0xpc3QuY3BwCiBKU0F1ZGlvV29y
a2xldC5jcHAKK0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCiBKU0F1ZGlvV29ya2xldE5v
ZGUuY3BwCiBKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmNwcAogSlNBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1MmRiM2MyMTBjZWFjZTUyOTkxODY4ZWNi
MGNiNzM2MzVjZmVkMC4uYjBjMjk3MGY1YWNkZjllMjMzMGViZjhkN2E5NDAxMmQ1ZTYwMzM4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjQ1MSw2ICsyNDUxLDEwIEBACiAJCTgzM0I5RTMyMUY1MDhEODUwMEUwRTQyOCAvKiBK
U0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkYxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3Rl
bURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgzM0I5RTM0MUY1MDhEODUwMEUwRTQyOCAvKiBK
U0ZpbGVTeXN0ZW1FbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODMzQjlFMkExRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUVudHJ5Lmgg
Ki87IH07CiAJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0I5
RTJDMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuaCAqLzsgfTsKKwkJ
ODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0JEODEzMjUyNEQ0RTIw
MDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi87IH07CisJCTgzM0JEODE4MjUyNEQ0
RjUwMDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTYyNTI0RDRFMzAwNkU3MkIzIC8q
IFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi87IH07CisJCTgzM0JEODFEMjUyNEQ1MzAwMDZF
NzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8qIEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAv
KiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5LmggKi87IH07CiAJCTgzM0QxQzc2MjREOEQ1NEYwMEU4MTNERiAv
KiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzM0QxQzczMjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLzsgfTsKIAkJODM0MDdGQzExRThEOUMxNzAwRTA0OEQz
IC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAvKiBWaXNpYmlsaXR5
Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODM0M0Q5ODQyNEQwREVFOTAwOUFCRDQ5IC8qIFdlYktpdE9zY2lsbGF0b3JOb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQzRDk4
MTI0RDBERUE5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCAqLzsgfTsKQEAgLTI1
MDgsNiArMjUxMiw3IEBACiAJCTgzOEY4NkRCMUY1MDlFN0IwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVt
RW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM4Rjg2RDcxRjUwOUU2QzAwRThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNr
LmggKi87IH07CiAJCTgzOTk0NzBDMUY1MEI2M0UwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwNzFG
NTBCNjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oICovOyB9OwogCQk4Mzk5NDcxMDFGNTBC
NkZBMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01G
aWxlU3lzdGVtLmggKi87IH07CisJCTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oICovOyB9OwogCQk4MzlBMkYyRTFFMjA0QTcxMDAzOTA1N0Ug
LyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgz
OUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUIxQTBDMEM4RDAwNjA1Rjk5
IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJCTgzOUJFNkQ1MjRGNTg3NjIwMDRERjUwRiAv
KiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCAqLzsgfTsKQEAgLTI1
MzUsNiArMjU0MCw3IEBACiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJ
Rk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUx
MUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgfTsKKwkJODNENkFBRTYy
NTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFFNDI1MjRFRTEzMDA0
MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgfTsKIAkJODNEQjlFMEYy
NERBMTk0OTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBC
aXF1YWRGaWx0ZXJUeXBlLmggKi87IH07CiAJCTgzREI5RTEwMjREQTE5NTcwMDM3QjQ2OCAvKiBC
aXF1YWRGaWx0ZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4M0RCOUUwRTI0REExOEI2MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9u
cy5oICovOyB9OwogCQk4M0UzNTlBMjFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTM1
OUEwMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oICovOyB9OwpAQCAtMjU0
NCw2ICsyNTUwLDcgQEAKIAkJODNGQjMzNzExRjUwOEE1NDAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGQjMzNkQxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRy
eS5oICovOyB9OwogCQk4M0ZCMzM3MzFGNTA4QTU4MDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2
RjFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmggKi87IH07CiAJCTgzRkIzMzc1
MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2QzFGNTA4QTRFMDA5ODZFNTQg
LyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4M0ZDOTk0QjI1MjU1N0VBMDAxNzc2
MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0
VGhyZWFkLmggKi87IH07CiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAvKiBVSUV2ZW50SW5p
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdD
QTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFCNjAwMzcyMzdDIC8q
IEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0ZF
OTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFFMzA3QzFDMDAzRTkx
OTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07CkBAIC0xMDU3OCw2ICsxMDU4NSwxMyBA
QAogCQk4MzNCOUUyRDFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVN5c3RlbUZpbGVF
bnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0I5RTJFMUY1MDhEODAw
MEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzM0I5RTJGMUY1MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3Rv
cnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxMzI1
MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXb3JrbGV0UGVuZGluZ1Rhc2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzM0JEODE1MjUyNEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rh
c2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtsZXRQZW5k
aW5nVGFza3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzNCRDgxNjI1MjRE
NEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MTkyNTI0RDUxQjAwNkU3MkIzIC8qIEF1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFB
MjUyNEQ1MUMwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODFCMjUyNEQ1MUMwMDZFNzJCMyAv
KiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzNCRDgxQzI1MjRENTFEMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2Fn
aW5nUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9X
b3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzNDRjcwRjIwREIzRjVGMDAxNDFCQ0MgLyogSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2VPYnNl
cnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0QxQzczMjRE
OEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzM0QxQzc1MjREOEQ1MzMwMEU4MTNERiAvKiBXZWJLaXRBdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNCw2ICsxMDcxOCw3IEBACiAJCTgzOTk0NzA5
MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4Mzk5NDcwRDFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTk0NzBFMUY1MEI2RjMwMEU5RDg2
QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNET01GaWxlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzOUEwOTVC
MjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkIxRTIwNEE2RDAw
MzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQwMDYwNUY5OSAvKiBI
VE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1Miw2
ICsxMDc2Nyw3IEBACiAJCTgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBSZXF1
ZXN0RXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxI
dHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
RDUxMUYzMjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVzaFB1bGxGSUZPLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoUHVsbEZJRk8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNENkFBRTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzREI5RTBBMjREQTE4QjQwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBCaXF1YWRGaWx0ZXJUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNE
QjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmlxdWFkRmlsdGVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0RC
OUUwRDI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmlx
dWFkRmlsdGVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc5
MSw2ICsxMDgwNyw5IEBACiAJCTgzRkIzMzZEMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVt
RGlyZWN0b3J5RW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5
c3RlbURpcmVjdG9yeUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkIz
MzZFMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNGQjMzNkYxRjUwOEE0RTAwOTg2RTU0IC8qIEZpbGVTeXN0ZW1F
bnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtRW50cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNGQzk5NDcyNTI1NTdFNzAwMTc3NjE4
IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ5MjUyNTU3RTcw
MDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Xb3Jr
bGV0VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTRBMjUyNTU3
RTgwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXVkaW9Xb3JrbGV0VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNG
RTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TW9kaWZpZXJJbml0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUV2ZW50SW5pdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZFN0NBNTFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVu
dEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVJRXZlbnRJbml0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQyLDYgKzE3NTYxLDggQEAKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1QjRFIC8q
IHRleHQgKi8sCisJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRC
cmVha2VyLmNwcCAqLywKKwkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29u
dGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAv
KiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTZGMzVFRkFGMjE4N0NCRDUwMDQ0
RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLywKQEAgLTE3NTU0
LDggKzE3NTc1LDYgQEAKIAkJCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5lTGlu
ZS5oICovLAogCQkJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVMaW5lQm94LmNw
cCAqLywKIAkJCQk2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oICov
LAotCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5j
cHAgKi8sCi0JCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVh
a2VyLmggKi8sCiAJCQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxpbmVCdWls
ZGVyLmNwcCAqLywKIAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1
aWxkZXIuaCAqLywKIAkJCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyogSW5saW5lTGluZUdl
b21ldHJ5LmggKi8sCkBAIC0xODcyMCw2ICsxODczOSw4IEBACiAJCQkJMkU0MzQ2M0QwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJCQkyRTQzNDYzRTBG
NTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQkyRTQzNDYz
RjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywKKwkJCQk4M0Q2QUFF
NDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJ
CQk4MzlBMDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oICovLAogCQkJCTQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRp
bmdQcm94eS5oICovLAogCQkJCTJFNDM0NjQwMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5M
b29wLmNwcCAqLywKIAkJCQkyRTQzNDY0MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9v
cC5oICovLApAQCAtMTk3MzgsOCArMTk3NTksMTEgQEAKIAkJCQk0QkRFQTMyNjIxN0ZFMkZBMDA1
MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKIAkJCQk0QkRFQTMyNDIxN0ZFMkU0
MDA1MkRGQ0QgLyogV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNEJERUEzMkEyMTgwMTA3
MjAwNTJERkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8sCisJCQkJODMzQkQ4MTYyNTI0
RDRFMzAwNkU3MkIzIC8qIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggKi8sCiAJCQkJODNBQ0Qw
MTAyNTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmggKi8sCiAJCQkJODNBQ0QwMTIy
NTIyOUUwNDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmlkbCAqLywKKwkJCQk4MzNCRDgxNTI1
MjRENEUyMDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5jcHAgKi8sCisJCQkJODMzQkQ4
MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCAqLywKIAkJCQk0QkRF
QTMyOTIxODAwNDBDMDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwICovLAog
CQkJCTRCREVBMzI3MjE4MDAzRjcwMDUyREZDRCAvKiBXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
ICovLAogCQkJKTsKQEAgLTI5ODU4LDExICsyOTg4MiwxOCBAQAogCQkJCTgzQjk4NzA2MjUyMjVG
MEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuY3BwICovLAogCQkJCTgzQjk4NzAxMjUyMjVGMEMw
MEE5MzlGMSAvKiBBdWRpb1dvcmtsZXQuaCAqLywKIAkJCQk4M0I5ODZGRDI1MjI1RjBCMDBBOTM5
RjEgLyogQXVkaW9Xb3JrbGV0LmlkbCAqLywKKwkJCQk4MzNCRDgxQTI1MjRENTFDMDA2RTcyQjMg
LyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwICovLAorCQkJCTgzM0JEODE5MjUyNEQ1MUIw
MDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oICovLAorCQkJCTgzRkM5OTQ3MjUy
NTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8sCisJCQkJODMz
QkQ4MUMyNTI0RDUxRDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcCAq
LywKKwkJCQk4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5n
UHJveHkuaCAqLywKIAkJCQk4M0I5ODcwMzI1MjI1RjBDMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0
Tm9kZS5jcHAgKi8sCiAJCQkJODNCOTg3MDcyNTIyNUYwRTAwQTkzOUYxIC8qIEF1ZGlvV29ya2xl
dE5vZGUuaCAqLywKIAkJCQk4M0I5ODcwNDI1MjI1RjBEMDBBOTM5RjEgLyogQXVkaW9Xb3JrbGV0
Tm9kZS5pZGwgKi8sCiAJCQkJODNCOTg3MDAyNTIyNUYwQjAwQTkzOUYxIC8qIEF1ZGlvV29ya2xl
dE5vZGVPcHRpb25zLmggKi8sCiAJCQkJODNCOTg3MDUyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmlkbCAqLywKKwkJCQk4M0ZDOTk0QTI1MjU1N0U4MDAxNzc2MTgg
LyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLywKKwkJCQk4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2
MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8sCiAJCQkJODMxOThGQkIyNEExNjBDMTAwNDIw
QjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJFMjRBMTYwQzEwMDQy
MEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQyNEExNjBDMTAwNDIw
QjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzA0NjcsOCArMzA0OTgsMTEgQEAK
IAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOEIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQjI1MjI1RjdEMDBBOTM5
RjEgLyogQXVkaW9Xb3JrbGV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgxRDI1MjRENTMw
MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTgzM0JEODFFMjUyNEQ1MzQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MDkyNTIyNUY3MjAwQTkzOUYxIC8qIEF1ZGlvV29y
a2xldE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQjk4NzBBMjUyMjVGNzYwMEE5MzlGMSAv
KiBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNGQzk5NEIy
NTI1NTdFQTAwMTc3NjE4IC8qIEF1ZGlvV29ya2xldFRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0VFNjg0NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0NzQ4NDEwQUExNjFE
MDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3
NzIsNiArMzE4MDYsNyBAQAogCQkJCUNEMDYzRjgzMUUyM0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0
YVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFNTBBMTU1QTA1MDAwQTQyMzQg
LyogSW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA1OTI2NDFFMjdBM0FEMDBENTdD
OTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZFMTk4MTcy
MTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCNTdDQjUyRTE4MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVudEJveC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0IC8qIElubGluZUZsb3dCb3gu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc4MCw3ICszMTgxNSw2IEBA
CiAJCQkJQkNFNzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8qIElubGluZUl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5lTGluZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8qIElubGluZUxpbmVC
b3guaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxp
bmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAw
NjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjkxNDIx
MTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1bi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNDU5NSw2ICszNDYyOSw4IEBACiAJCQkJMUFCQzcxMDkxNzBFNUUxQjAwRjlB
OUQ2IC8qIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzOUEwOTVEMjUyNEYz
N0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0NERFMDAzN0QxRTYg
LyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0NjA5LDcgKzM0NjQ1
LDkgQEAKIAkJCQk0QkRFQTMyMDIxN0VDNTVGMDA1MkRGQ0QgLyogV29ya2xldC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNEI3RjlDNTIyMTgzQjVFNTAwMUNFQkEwIC8qIFdvcmtsZXRDb25zb2xlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyNTIxN0ZFMkU0MDA1MkRGQ0QgLyogV29y
a2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNCRDgxODI1MjRENEY1MDA2
RTcyQjMgLyogV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
QUNEMDEzMjUyMjlFMTAwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODMzQkQ4MTcyNTI0RDRGMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTRCREVBMzI4MjE4MDAzRjcwMDUyREZDRCAvKiBXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjQwOTlFNjQ5MjAwNTZF
NTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggYjE0YjgxNTQyZGI4ODllYzZkMjU5YmM1
YjcwZWYyYTUwOTljOTZkMS4uMzIzZGVlNzhkOGJiZWM5ZWNlZTE1NmI5MzNlYWQwODYxNDE5N2E4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFs
U2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2UuY3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmgiCiAKLSNpZiBFTkFCTEUoQ1NT
X1BBSU5USU5HX0FQSSkKLQogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUg
IkpTRE9NR2xvYmFsT2JqZWN0VGFzay5oIgogI2luY2x1ZGUgIkpTRE9NR3VhcmRlZE9iamVjdC5o
IgpAQCAtMTUxLDQgKzE0OSwzIEBAIEpTV29ya2xldEdsb2JhbFNjb3BlKiB0b0pTV29ya2xldEds
b2JhbFNjb3BlKFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5oCmluZGV4IDhmZWY5MjAxZmVkYzM2MWU5MjVjYzgwNjJmMmNm
MjZkYTMxY2VjNjAuLmI4YTE3ZWM0ZTdlMmZhY2NiZTg0Njc0Y2EwMTRkMTM1YmU3MDU5ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxF
KENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKQEAgLTg4
LDUgKzg2LDMgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIFdvcmtsZXRHbG9iYWwKIEpTV29ya2xldEdsb2JhbFNjb3Bl
KiB0b0pTV29ya2xldEdsb2JhbFNjb3BlKEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApp
bmRleCA2MmIwZDZkNTRhNGYwMDAyZGVlNGJkMmRmYzdlYzZlZDEzN2Q4NDY4Li5iM2E4ZDViMTNj
NDUxMWNmNzg0MjU3NTlkNjA1MTQ4MTExNDkwYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhBdWRpb0xpc3RlbmVyKSBcCiAgICAgbWFjcm8oQXVk
aW9QYXJhbU1hcCkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldCkgXAorICAgIG1hY3JvKEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oQXVkaW9Xb3JrbGV0Tm9kZSkgXAogICAg
IG1hY3JvKEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSkgXAogICAgIG1hY3JvKEF1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCmluZGV4IDM4ZGY2Nzc1MmU5MGE2YTJl
MDE3NGNmYWZiYzRmODcxZWE4MWMxNGEuLjA3NjYwODM4MDc0ZTI2ZWJmNDMxZDUxYTlhZjMxMDE5
YzU5YTA3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVK
U0NsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVK
U0NsaWVudERhdGEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJET01HQ091dHB1
dENvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJK
U0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01CdWlsdGluQ29uc3RydWN0b3JCYXNlLmgiCiAjaW5jbHVkZSAiSlNET01X
aW5kb3cuaCIKQEAgLTY4LDkgKzY5LDEyIEBAIEpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0
YShWTSYgdm0pCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICwgbV9oZWFwQ2VsbFR5
cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3Jl
YXRlPEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigpKQogI2VuZGlmCisgICAgLCBtX2hlYXBD
ZWxsVHlwZUZvckpTV29ya2xldEdsb2JhbFNjb3BlKEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVh
dGU8SlNXb3JrbGV0R2xvYmFsU2NvcGU+KCkpCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkp
CiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJ
c29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlPigpKQotICAg
ICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxs
VHlwZTo6Y3JlYXRlPEpTV29ya2xldEdsb2JhbFNjb3BlPigpKQorI2VuZGlmCisjaWYgRU5BQkxF
KFdFQl9BVURJTykKKyAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZShKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU+KCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0KEpTQzo6SXNvSGVhcENl
bGxUeXBlOjpjcmVhdGU8SlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0PigpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDgz
YjgyMzRjMzM1ZGVkMTQ1MGQxODEzZmU4NDI5N2E5NzU4Mzg5NTEuLmI4NDQwZTg3NzBlNDcyOTFm
N2VlMjA2MzE5OWVhMDVjM2M0YmIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTk5LDkgKzk5LDEyIEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENl
bGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogI2Vu
ZGlmCisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlw
ZUZvckpTV29ya2xldEdsb2JhbFNjb3BlOwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBD
ZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKKyNlbmRpZgor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SGVhcENlbGxU
eXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpI
ZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2Jq
ZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5oCmluZGV4IGQwYTU0N2FjNTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2MDku
LmUzOTAxODBmNTcxZjllMWUzNWJjOTIzYjFkNzcxZDRiOTVjZWRhNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI2
LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpAQCAtNDQsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRTb3Vy
Y2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtlckdsb2JhbFNj
b3BlOwogCi1jbGFzcyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIHsKK2NsYXNzIFdvcmtlclNjcmlw
dENvbnRyb2xsZXIgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29y
a2VyR2xvYmFsU2NvcGUqKTsKQEAgLTY3LDcgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIGZvcmJp
ZEV4ZWN1dGlvbigpL2lzRXhlY3V0aW9uRm9yYmlkZGVuKCkgdG8gZ3VhcmQgYWdhaW5zdCByZWVu
dHJ5IGludG8gSlMuCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCiAgICAg
dm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7Ci0gICAgYm9vbCBpc1Rlcm1pbmF0
aW5nRXhlY3V0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkg
Y29uc3QgZmluYWw7CiAKICAgICAvLyBDYWxsZWQgb24gV29ya2VyIHRocmVhZCB3aGVuIEpTIGV4
aXRzIHdpdGggdGVybWluYXRpb24gZXhjZXB0aW9uIGNhdXNlZCBieSBmb3JiaWRFeGVjdXRpb24o
KSByZXF1ZXN0LAogICAgIC8vIG9yIGJ5IFdvcmtlciB0aHJlYWQgdGVybWluYXRpb24gY29kZSB0
byBwcmV2ZW50IGZ1dHVyZSBlbnRyeSBpbnRvIEpTLgpAQCAtNzksMTEgKzgwLDExIEBAIHB1Ymxp
YzoKIAogICAgIEpTQzo6Vk0mIHZtKCkgeyByZXR1cm4gKm1fdm07IH0KICAgICAKLSAgICB2b2lk
IHJlbGVhc2VIZWFwQWNjZXNzKCk7Ci0gICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpOworICAg
IHZvaWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSBmaW5hbDsKKyAgICB2b2lkIGFjcXVpcmVIZWFwQWNj
ZXNzKCkgZmluYWw7CiAKLSAgICB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNS
dW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3Zl
VGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVu
TG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJl
bW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZp
Y2F0aW9uQ2FsbGJhY2spIGZpbmFsOwogCiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRl
YnVnZ2VyKik7CiAgICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IDEwZjNlNjY4NjY1NDVhNWE2MGE5ZWU1YTlmODY3NGFlM2MyODQ5MzIuLjU4ZmQxYTdhMjZm
ZGQxZGFjNGRiMmI3MGIxYzU0NTM3NWJjZDRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03NzUsNyArNzc1LDcgQEAg
c3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZQogCiAgICAgIyBGb3Igd29ya2Vycywg
dGhlIGdsb2JhbCBvYmplY3QgaXMgYSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS4KICAgICBy
ZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSI7
Ci0gICAgIyBGb3Igd29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUuCisgICAgIyBGb3Igd29ya2xldHMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEg
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUgb3IgYSBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS4KICAg
ICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJXb3JrbGV0R2xvYmFsU2Nv
cGUiOwogCiAgICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAppbmRl
eCBiZWUwZmM1MDY5MTlmY2NmZDE3NWY2OWNjNTIzYzU3NTZiYzA4YTg4Li5mNGM4NGJjODhjNDEx
NDVkZDE2ZWQzODNkNGQzOWM0MmNjNWQ2OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbApAQCAtNDcsNiArNDcsNyBAQCBteSAk
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkd29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZTsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
c0ZpbGU7CitteSAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkg
JHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZp
bGVEZXBzOwogbXkgJGlkbEF0dHJpYnV0ZXNGaWxlOwpAQCAtNjksNiArNzAsNyBAQCBHZXRPcHRp
b25zKCdkZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKICAgICAgICAgICAgJ3NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZT1zJyA9PiBcJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAg
ICAgICAgICAgICdwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCisgICAgICAgICAgICdh
dWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRhdWRpb1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSwKICAgICAgICAgICAgJ3N1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcywKICAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwk
aWRsQXR0cmlidXRlc0ZpbGUsCkBAIC04Myw2ICs4NSw3IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFu
IG91dHB1dCBmaWxlIHVzaW5nIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGCiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4g
b3V0cHV0IGZpbGUgdXNpbmcgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicp
IHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRp
ZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRwYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZp
bGUgdXNpbmcgLS1hdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUuJykgdW5s
ZXNzIGRlZmluZWQoJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBk
aWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXRlc3RHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpIHx8ICFkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogZGllKCdNdXN0
IHNwZWNpZnkgdGhlIGZpbGUgbGlzdGluZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xp
c3QuJykgdW5sZXNzIGRlZmluZWQoJGlkbEZpbGVOYW1lc0xpc3QpOwogZGllKCdNdXN0IHNwZWNp
ZnkgSURMIGF0dHJpYnV0ZXMgZmlsZSB1c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVz
cyBkZWZpbmVkKCRpZGxBdHRyaWJ1dGVzRmlsZSk7CkBAIC05NSw2ICs5OCw3IEBAICRkZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQo
JGRlZGljYXRlZFdvcmtlCiAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JzRmlsZSk7CiAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBh
dGhJZk5lZWRlZCgkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOworJGF1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkYXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmlsZURl
cHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYgZGVm
aW5lZCgkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKTsKIAogbXkgQGlkbEZpbGVOYW1lczsKQEAg
LTEzNSw2ICsxMzksNyBAQCBteSAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNDb2RlID0gIiI7CiBteSAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29k
ZSA9ICIiOwogbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15
ICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKK215ICRhdWRp
b1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgPSAiIjsKIG15ICR0ZXN0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiAKIG15ICRpc29TdWJzcGFjZXNIZWFkZXJDb2Rl
ID0gPDxFTkQ7CkBAIC0yMzcsNiArMjQyLDggQEAgZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUgKHNv
cnQga2V5cyAlaWRsRmlsZU5hbWVIYXNoKSB7CiAgICAgICAgICAgICAgICAgJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9
IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiUGFpbnRXb3JrbGV0IikgewogICAgICAgICAgICAg
ICAgICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0
ZUNvZGU7CisgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAiQXVkaW9Xb3Jr
bGV0IikgeworICAgICAgICAgICAgICAgICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFs
Q29udGV4dCBlcSAkdGVzdEdsb2JhbENvbnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgJHRl
c3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAgICAgICAg
ICAgICB9IGVsc2UgewpAQCAtMjU0LDYgKzI2MSw3IEBAIEdlbmVyYXRlUGFydGlhbEludGVyZmFj
ZSgiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiLCAkZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICRz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAkc2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIldv
cmtsZXRHbG9iYWxTY29wZSIsICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAk
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRl
cmZhY2UoIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIiwgJHBhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzQ29kZSwgJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CitHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIiwg
JGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJGF1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRl
c3RHbG9iYWxDb250ZXh0TmFtZSwgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0
ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29u
dGV4dE5hbWUpOwogCiBpZiAoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9BdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9ycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEw
ZGFlMTEwN2QzMzRiYzhmNDNkZjJmNGY3ZTg0YTk4M2MzNWQ2NmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsCkBAIC0wLDAgKzEsMiBAQAorcGFydGlhbCBpbnRlcmZhY2Ug
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3
YjBhNTU4YzQ1NWFlMWUzMTVhMGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuY3BwCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUg
aXMgZ2VuZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGFuZAorICAgIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuY3BwIHdlcmUgY3JlYXRlZCBmb3IgQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZy
b20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9ycy5oIGFuZCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCBvbiBl
dmVyeSBidWlsZC4KKyovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTI0YTI3YjBhNTU4YzQ1NWFlMWUzMTVh
MGNmMTFiZTI3YzY0ODdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZv
cm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaCBhbmQKKyAgICBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3
ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwg
YW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVy
YXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNwcAppbmRleCAxMzZlNGYxNGVjZmU1
ZTRiOWY5Yzk1MjAyNzQzOWE0YTMxZDQ5NjQ1Li42YTBlMTk2NjQ1NDJlODE2ODFjN2E2OTdlY2M3
MTE1YjdhNGRmYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRX
b3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRPTUNTU05hbWVzcGFjZS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNp
bmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NiwxMSArNTcsMTggQEAgY29u
c3QgY2hhciogRE9NQ1NTUGFpbnRXb3JrbGV0OjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJu
ICJET01DU1NQYWludFdvcmtsZXQiOwogfQogCi12b2lkIFBhaW50V29ya2xldDo6YWRkTW9kdWxl
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRp
b25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCisvLyBGSVhNRTogR2V0
IHJpZCBvZiB0aGlzIG92ZXJyaWRlIGFuZCByZWx5IG9uIHRoZSBzdGFuZGFyZC1jb21wbGlhbnQg
V29ya2xldDo6YWRkTW9kdWxlKCkgaW5zdGVhZC4KK3ZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1
bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGlzIGZyYW1lIGlzIGRldGFjaGVkIl9z
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBk
b3dubG9hZCB0aGUgc291cmNlIGZyb20gdGhlIFVSTAogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTExMzYKLSAgICBhdXRvIG1heWJlQ29udGV4dCA9IFBh
aW50V29ya2xldEdsb2JhbFNjb3BlOjp0cnlDcmVhdGUoZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNv
ZGUobW9kdWxlVVJMKSk7CisgICAgYXV0byBtYXliZUNvbnRleHQgPSBQYWludFdvcmtsZXRHbG9i
YWxTY29wZTo6dHJ5Q3JlYXRlKCpkb2N1bWVudCwgU2NyaXB0U291cmNlQ29kZShtb2R1bGVVUkwp
KTsKICAgICBpZiAoVU5MSUtFTFkoIW1heWJlQ29udGV4dCkpIHsKICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgT3V0T2ZNZW1vcnlFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOwpA
QCAtNzAsOSArNzgsMTUgQEAgdm9pZCBQYWludFdvcmtsZXQ6OmFkZE1vZHVsZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGUKIAogICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2soY29udGV4dC0+cGFpbnREZWZpbml0aW9uTG9jaygpKTsKICAgICBmb3Ig
KGF1dG8mIG5hbWUgOiBjb250ZXh0LT5wYWludERlZmluaXRpb25NYXAoKS5rZXlzKCkpCi0gICAg
ICAgIGRvY3VtZW50LnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShuYW1lLCBtYWtl
UmVmKGNvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgZG9jdW1lbnQtPnNldFBhaW50V29ya2xldEds
b2JhbFNjb3BlRm9yTmFtZShuYW1lLCBtYWtlUmVmKGNvbnRleHQuZ2V0KCkpKTsKICAgICBwcm9t
aXNlLnJlc29sdmUoKTsKIH0KIAorVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+
IFBhaW50V29ya2xldDo6Y3JlYXRlR2xvYmFsU2NvcGVzKCkKK3sKKyAgICAvLyBGSVhNRTogQWRk
IGltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiB7IH07Cit9CisKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCmluZGV4IGI5YjEzODViYjA4YTNmMWNlZDRl
YjJiNDI0MDNkZDEwN2U1YTg0ZWUuLjA5NGFlNmMxMmY3NTE5Mzg1YmExYTYyZDdiYjIwNDgyMjNm
MmMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRXb3JrbGV0LmgKQEAgLTQxLDE1
ICs0MSwyMSBAQCBjbGFzcyBET01DU1NOYW1lc3BhY2U7CiAKIGNsYXNzIFBhaW50V29ya2xldCBm
aW5hbCA6IHB1YmxpYyBXb3JrbGV0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBhaW50V29y
a2xldD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFBhaW50V29ya2xldD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhaW50
V29ya2xldCk7CisgICAgICAgIGF1dG8gd29ya2xldCA9IGFkb3B0UmVmKCpuZXcgUGFpbnRXb3Jr
bGV0KGRvY3VtZW50KSk7CisgICAgICAgIHdvcmtsZXQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
ICAgICByZXR1cm4gd29ya2xldDsKICAgICB9CiAKLSAgICB2b2lkIGFkZE1vZHVsZShEb2N1bWVu
dCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7CisgICAgLy8gV29ya2xldC4KKyAgICB2b2lkIGFkZE1v
ZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNj
b3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBQ
YWludFdvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAgZXhwbGljaXQgUGFpbnRXb3JrbGV0KERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBXb3JrbGV0KGRvY3VtZW50KQorICAgIHsgfQogfTsK
IAogY2xhc3MgRE9NQ1NTUGFpbnRXb3JrbGV0IGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8RE9N
Q1NTTmFtZXNwYWNlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyYWNmM2YxOGNhZGM2
ODZiMzFlYzNhZDA1YmM1OGEwMWIwZWYzNGFlLi44ZTliMjE5MGY4ZTJiMWE3NDlkMzNmYjMyYzE3
ZDBlOWZiY2RjZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTg0MzksNyArODQzOSw3
IEBAIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciYgRG9jdW1lbnQ6
OmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uCiBQYWludFdvcmtsZXQmIERvY3VtZW50OjplbnN1
cmVQYWludFdvcmtsZXQoKQogewogICAgIGlmICghbV9wYWludFdvcmtsZXQpCi0gICAgICAgIG1f
cGFpbnRXb3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKTsKKyAgICAgICAgbV9wYWludFdv
cmtsZXQgPSBQYWludFdvcmtsZXQ6OmNyZWF0ZSgqdGhpcyk7CiAgICAgcmV0dXJuICptX3BhaW50
V29ya2xldDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5k
ZXggNWRlMDE3YzhiMTU3MDRiODdmODFjODU0YmJjNDc3MDYyYmNkYTEyYy4uMzAxNzEwMDQ0ZmYx
M2ExNGMwMjI4ZGEzODkwMmQzZTdkMzM3N2MxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluCkBAIC01NSw3ICs1NSw3IEBAIFdlYkdQVURldmljZSBjb25kaXRpb25h
bD1XRUJHUFUKIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiBjb25kaXRpb25hbD1MRUdBQ1lfRU5DUllQ
VEVEX01FRElBCiBXZWJTb2NrZXQKIFdvcmtlcgotV29ya2xldEdsb2JhbFNjb3BlIGNvbmRpdGlv
bmFsPUNTU19QQUlOVElOR19BUEkKK1dvcmtsZXRHbG9iYWxTY29wZQogWE1MSHR0cFJlcXVlc3QK
IFhNTEh0dHBSZXF1ZXN0VXBsb2FkCiBXZWJYUkxheWVyIGNvbmRpdGlvbmFsPVdFQlhSCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNDNkNTc2NTI5OGMwNjc5MmM2
ZGRjZTg1YzQyYTBhM2Y1NzVhODc4My4uOTg1MjA1ZGFiYWFiOGRhMzg2ZjY1NjRkODA5NmZkMjg2
NTVjMWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVn
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAtMzcs
NyArMzcsNyBAQCBzdHJ1Y3QgTm93UGxheWluZ0luZm87CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBN
ZWRpYVN0cmF0ZWd5IHsKIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHZpcnR1
YWwgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oCisgICAgdmlydHVhbCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbigKICAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmlj
ZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKICNlbmRpZgogI2lmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbi5oCmluZGV4IGRlYjc1N2RjNDVlNTc4NTg1MjE3ZmQzYmVjMDcxMmI2NDRkNzUzNzQuLjE2
MGM2NTc4ZTE1ZWQ1ZWE3NTI1ZGM3NjhiZDRlZjNmZGM3NGY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNkZWZpbmUgQXVkaW9EZXN0aW5hdGlvbl9oCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDE2ICs0MSwxNiBAQCBjbGFz
cyBBdWRpb0lPQ2FsbGJhY2s7CiAvLyBUaGUgYXVkaW8gaGFyZHdhcmUgcGVyaW9kaWNhbGx5IGNh
bGxzIHRoZSBBdWRpb0lPQ2FsbGJhY2sgcmVuZGVyKCkgbWV0aG9kIGFza2luZyBpdCB0byByZW5k
ZXIvb3V0cHV0IHRoZSBuZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1ZGlvLgogLy8gSXQgb3B0aW9u
YWxseSB3aWxsIHBhc3MgaW4gbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dCB3aGVuIGl0IGNhbGxzIHJl
bmRlcigpLgogCi1jbGFzcyBBdWRpb0Rlc3RpbmF0aW9uIHsKK2NsYXNzIEF1ZGlvRGVzdGluYXRp
b24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9EZXN0aW5hdGlvbj4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJl
ck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJl
ZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlv
biBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0
RGV2aWNlSWQuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1
dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNv
bnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAog
ICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzUGxheWluZygpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggNzRhZDYxNmZhOWUyNWRlYjk5OWM5
NmI2NjdlZDE0OTQ3MGJmNjg3Mi4uZGE0ZTRiMmM4YjYwNzM0ODNmOWZhZGM2N2JhZmJmZmY4Njg1
ZjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC00MSw3ICs0MSw3IEBAIGNvbnN0
ZXhwciBzaXplX3QgZmlmb1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZTsKIAogQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSA9IG51bGxwdHI7CiAKLXN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNr
JiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVm
PEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7
CiAgICAgLy8gRklYTUU6IG1ha2UgdXNlIG9mIGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUu
CiAKQEAgLTU1LDcgKzU1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1
ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAoQXVk
aW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSkKICAgICAgICAgcmV0dXJuIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUoY2FsbGJhY2ssIHNhbXBsZVJhdGUpOwog
Ci0gICAgYXV0byBkZXN0aW5hdGlvbiA9IG1ha2VVbmlxdWU8QXVkaW9EZXN0aW5hdGlvbkNvY29h
PihjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgYXV0
byBkZXN0aW5hdGlvbiA9IGFkb3B0UmVmKCpuZXcgQXVkaW9EZXN0aW5hdGlvbkNvY29hKGNhbGxi
YWNrLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7CiAgICAgZGVzdGluYXRp
b24tPmNvbmZpZ3VyZSgpOwogICAgIHJldHVybiBkZXN0aW5hdGlvbjsKIH0KQEAgLTEwMyw5ICsx
MDMsMTAgQEAgdW5zaWduZWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpmcmFtZXNQZXJCdWZmZXIo
KSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlckJ1cy0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQgQXVk
aW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCgpCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5k
ZXJUaHJlYWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFy
dCIpOworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZCk7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQo
bV9vdXRwdXRVbml0KTsKIAogICAgIGlmICghcmVzdWx0KQpAQCAtMTE2LDYgKzExNyw3IEBAIHZv
aWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wKCkKIHsKICAgICBMT0coTWVkaWEsICJBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb091
dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFk
ID0gbnVsbHB0cjsKIAogICAgIGlmICghcmVzdWx0KQogICAgICAgICBzZXRJc1BsYXlpbmcoZmFs
c2UpOwpAQCAtMTIzLDYgKzEyNSw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9w
KCkKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxh
eWluZykKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1faXNQbGF5aW5nTG9jayk7CiAg
ICAgaWYgKG1faXNQbGF5aW5nID09IGlzUGxheWluZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
NzMsMTggKzE3NiwzOCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihj
b25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIgbgogCiAgICAgLy8gQXNzb2Np
YXRlIHRoZSBkZXN0aW5hdGlvbiBkYXRhIGFycmF5IHdpdGggdGhlIG91dHB1dCBidXMgdGhlbiBm
aWxsIHRoZSBGSUZPLgogICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1RvQnVzKGJ1ZmZlcnMsIG1fb3V0
cHV0QnVzLmdldCgpLCBudW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9mRnJhbWVzLCAwLCBudW1iZXJP
ZkZyYW1lcyk7Ci0gICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0
cHV0QnVzLnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVy
OwogCisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOwor
ICAgICAgICBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwg
bnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dv
cmtsZXQsIHdlIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgorICAgIGlm
IChtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lc1RvUmVu
ZGVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2Nr
KG1faXNQbGF5aW5nTG9jaywgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgICAgICAgICBpZiAobG9j
ay5vd25zX2xvY2soKSAmJiBtX2lzUGxheWluZykKKyAgICAgICAgICAgICAgICByZW5kZXJPblJl
bmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisg
ICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOworCisgICAgcmV0
dXJuIG5vRXJyOworfQorCisvLyBUaGlzIHJ1bnMgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZCB3
aGVuIEF1ZGlvV29ya2xldCBpcyBlbmFibGVkLCBvbiB0aGUgYXVkaW8gZGV2aWNlJ3MgcmVuZGVy
aW5nIHRocmVhZCBvdGhlcndpc2UuCit2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVy
T25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpCit7CiAgICAgZm9yIChzaXpl
X3QgcHVzaGVkRnJhbWVzID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hl
ZEZyYW1lcyArPSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpIHsKICAgICAgICAg
aWYgKG1fcmVzYW1wbGVyKQogICAgICAgICAgICAgbV9yZXNhbXBsZXItPnByb2Nlc3ModGhpcywg
bV9yZW5kZXJCdXMucHRyKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVz
LnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0
YW1wKTsKIAorICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZmlmb0xvY2spOwogICAg
ICAgICBtX2ZpZm8tPnB1c2gobV9yZW5kZXJCdXMucHRyKCkpOwogICAgIH0KLQotICAgIHJldHVy
biBub0VycjsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2Nv
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmgKaW5kZXggMDBkZGEyZmIyYTM3YjgzZjEwZWZhNTI3MWIxNzY4YTgwYjQ4MTFlYy4u
MDg5NGQ2MjFhMmYxNTMyMjUxMjczNjUwYjZlNWEzZDNlYzk5NmY4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQXVkaW9CdXM7CiBjbGFzcyBNdWx0aUNo
YW5uZWxSZXNhbXBsZXI7CiBjbGFzcyBQdXNoUHVsbEZJRk87CiAKLXVzaW5nIENyZWF0ZUF1ZGlv
RGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwordXNpbmcgQ3JlYXRl
QXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgPSBSZWY8QXVkaW9EZXN0aW5hdGlvbj4oKiko
QXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIC8vIEFuIEF1ZGlvRGVzdGlu
YXRpb24gdXNpbmcgQ29yZUF1ZGlvJ3MgZGVmYXVsdCBvdXRwdXQgQXVkaW9Vbml0CiBjbGFzcyBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlvbiwgcHVibGljIEF1
ZGlvU291cmNlUHJvdmlkZXIgewpAQCAtNjUsMTEgKzY1LDE1IEBAIHByb3RlY3RlZDoKIAogICAg
IHZvaWQgc2V0QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiYpOwogCisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rp
c3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydCgpIG92ZXJy
aWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAotICAgIGZyaWVuZCBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1
ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgZmxvYXQp
OworICAgIHZvaWQgcmVuZGVyT25SZW5kZXJpbmdUaGVhZChzaXplX3QgZnJhbWVzVG9SZW5kZXIp
OworCisgICAgZnJpZW5kIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVk
LCBmbG9hdCk7CiAgICAgCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICB2b2lkIHBy
b3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwpAQCAt
OTEsMTEgKzk1LDE0IEBAIHByaXZhdGU6CiAgICAgLy8gUmVzb2x2ZXMgdGhlIGJ1ZmZlciBzaXpl
IG1pc21hdGNoIGJldHdlZW4gdGhlIFdlYkF1ZGlvIGVuZ2luZSBhbmQKICAgICAvLyB0aGUgY2Fs
bGJhY2sgZnVuY3Rpb24gZnJvbSB0aGUgYWN0dWFsIGF1ZGlvIGRldmljZS4KICAgICBVbmlxdWVS
ZWY8UHVzaFB1bGxGSUZPPiBtX2ZpZm87CisgICAgTG9jayBtX2ZpZm9Mb2NrOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9yZXNhbXBsZXI7CiAgICAgQXVk
aW9JT1Bvc2l0aW9uIG1fb3V0cHV0VGltZXN0YW1wOwogCiAgICAgZmxvYXQgbV9jb250ZXh0U2Ft
cGxlUmF0ZTsKKworICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwogICAgIGJvb2wgbV9pc1BsYXlp
bmcgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIu
Y3BwCmluZGV4IDhmZGViNmEyNDI0ODQ5Y2FjMTdiYmU5MGFhZTcxMmE4OWEyNGQxMDAuLmMwNWFl
NmJlNjI5ZGRiM2RmNjcyMjgyOTExMWNlOGI2NDAwZWU2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZvaWQgYXV0
b0F1ZGlvU2lua0NoaWxkQWRkZWRDYWxsYmFjayhHc3RDaGlsZFByb3h5KiwgR09iamVjdCogb2Jq
ZWN0LCBnY2gKICAgICAgICAgZ19vYmplY3Rfc2V0KEdTVF9BVURJT19CQVNFX1NJTksob2JqZWN0
KSwgImJ1ZmZlci10aW1lIiwgc3RhdGljX2Nhc3Q8Z2ludDY0PigxMDAwMDApLCBudWxscHRyKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246
OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25l
ZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGZsb2F0IHNhbXBsZVJhdGUpCitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTogbWFrZSB1c2Ugb2YgaW5wdXRE
ZXZpY2VJZCBhcyBhcHByb3ByaWF0ZS4KIApAQCAtNjAsNyArNjAsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxs
YmFjayYgY2FsbAogICAgIGlmIChudW1iZXJPZk91dHB1dENoYW5uZWxzICE9IDIpCiAgICAgICAg
IExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgldSwgJXUsICVmKSAtIHVuaGFu
ZGxlZCBvdXRwdXQgY2hhbm5lbHMiLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcj4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoY2FsbGJhY2ssIHNhbXBsZVJh
dGUpKTsKIH0KIAogZmxvYXQgQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkK
QEAgLTE2NSw3ICsxNjUsNyBAQCBnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpo
YW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAK
LXZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjpzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+
JiYpCiB7CiAgICAgQVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKICAgICBpZiAoIW1fYXVk
aW9TaW5rQXZhaWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5k
ZXggY2ZlNjg5MjA4ZDA5NjhhNTFhOGJiMWQxZTg3ZjZlMTlkMGYyMzE2Ni4uZDU1MTA0Yzg4Y2Ni
Y2RmZmZmOTdjNGU3YTQ5NDk4NmY5OTZiZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBBdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZp
cnR1YWwgfkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKTsKIAotICAgIHZvaWQgc3RhcnQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3AoKSBv
dmVycmlkZTsKIAogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1Bs
YXlpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDlkYWE3ZDAxNDFkODEwNGU0ZjVjNGMy
NjQ4YmM4YzZiZTUyNmMwYzguLjVhMTJjZGU0ZmNkZmM1N2ZhZDQyYjdkOWU4ZmU3MzIwNDM1MDlk
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
QXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDUsOCArNDUsOSBAQCBNb2NrQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssCiAKIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6On5Nb2NrQXVkaW9EZXN0aW5h
dGlvbkNvY29hKCkgPSBkZWZhdWx0OwogCi12b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OnN0YXJ0KCkKK3ZvaWQgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248
dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiB7Cisg
ICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKTsKICAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgeyBtX251bWJlck9mRnJh
bWVzVG9Qcm9jZXNzIC8gc2FtcGxlUmF0ZSgpIH0pOwogICAgIHNldElzUGxheWluZyh0cnVlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmgKaW5kZXggZDRlYWU4MzM0MzVjMGE2MDQ1NWVkMGI5NjkyNTY4Yzhl
YzYzZjM2ZC4uYThkMjhjNGVkMWJiZWZmZDMzMDk0NTBkYWFmMzI5ZWJhMjUzNGMxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmgKQEAgLTM4LDEyICszOCwxNiBAQCBjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CiBj
bGFzcyBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGlu
YXRpb25Db2NvYSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkgeyByZXR1cm4gbWFrZVVuaXF1ZTxN
b2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hPihjYWxsYmFjaywgc2FtcGxlUmF0ZSk7IH0KKyAgICBz
dGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxi
YWNrLCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShjYWxsYmFjaywgc2FtcGxlUmF0ZSkpOworICAg
IH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9J
T0NhbGxiYWNrJiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3Rh
cnQoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKICAgICB2b2lkIHRpY2so
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmNwcAppbmRleCA3ZGFj
YzBkYTQxNDBiMzFhN2ZlNGRkNjUwOWI5NDYzOWNmNTU0OGRlLi5hNGU3ZGZmZjgyOWJjNzk3NzQz
ODAyZmYyMGYxZjQ1ODZkMzU0MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckV2ZW50TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJF
dmVudExvb3AuY3BwCkBAIC0zNywxMiArMzcsMTAgQEAgUmVmPFdvcmtlckV2ZW50TG9vcD4gV29y
a2VyRXZlbnRMb29wOjpjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQpCiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyRXZlbnRMb29wKGNvbnRleHQpKTsKIH0KIAotI2lmIEVO
QUJMRShDU1NfUEFJTlRJTkdfQVBJKQogUmVmPFdvcmtlckV2ZW50TG9vcD4gV29ya2VyRXZlbnRM
b29wOjpjcmVhdGUoV29ya2xldEdsb2JhbFNjb3BlJiBjb250ZXh0KQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdvcmtlckV2ZW50TG9vcChjb250ZXh0KSk7CiB9Ci0jZW5kaWYKIAogV29y
a2VyRXZlbnRMb29wOjpXb3JrZXJFdmVudExvb3AoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmgKaW5kZXggZGM0ZjQwNDUyZGM3ZTI5MDY4
NDljMDVmNjVhYzNjNzc0NDRkNzFmZi4uMWNkMGVjYjZhMmYzMGU2NjgzN2VkZjczZjdiNDJjMTky
ODQ5MDY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExv
b3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5oCkBAIC0z
NywxMCArMzcsNyBAQCBjbGFzcyBXb3JrZXJFdmVudExvb3AgZmluYWwgOiBwdWJsaWMgRXZlbnRM
b29wLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydgogcHVibGljOgogICAgIC8vIEV4
cGxpY2l0bHkgdGFrZSBXb3JrZXJHbG9iYWxTY29wZSBhbmQgV29ya2xldEdsb2JhbFNjb3BlIGZv
ciBkb2N1bWVudGF0aW9uIHB1cnBvc2VzLgogICAgIHN0YXRpYyBSZWY8V29ya2VyRXZlbnRMb29w
PiBjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmKTsKLQotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdf
QVBJKQogICAgIHN0YXRpYyBSZWY8V29ya2VyRXZlbnRMb29wPiBjcmVhdGUoV29ya2xldEdsb2Jh
bFNjb3BlJik7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgfldvcmtlckV2ZW50TG9vcCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGIyZjMz
MTJjZjRiMDQ2MWI4N2ZhYWFjMzljZDQyYTA2M2U1OGFjNzMuLjFmZTkzOTg3ZWY5NjFmZGZiZTM4
ZjQ3Y2E2NzFhZjVmZGE5OGQ5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCkBAIC01NDQsNCArNTQ0LDkgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2Vy
R2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcnJl
clBvbGljeTsKIH0KIAorVGhyZWFkKiBXb3JrZXJHbG9iYWxTY29wZTo6dW5kZXJseWluZ1RocmVh
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLnRocmVhZCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmgKaW5kZXggYmQ5Y2YxNDBkZDUyZmI4NDk4YjlmYTQxMDYwYzkzYWJmYTY4Mzg1ZS4uOTBkZjNi
NmFmM2Q2M2VjNjFhZWM5YTEyM2MwODc3ZTc5ZTM0YjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIklt
YWdlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
LmgiCkBAIC01OSw3ICs2MCw3IEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29u
bmVjdGlvblByb3h5OwogfQogCi1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckds
b2JhbFNjb3BlPiwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBFdmVudFRh
cmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzIHsKK2NsYXNzIFdvcmtl
ckdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJs
aWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxpdGllcywgcHVibGljIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlckdsb2Jh
bFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZSgpOwpAQCAt
ODUsMTMgKzg2LDE1IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24mIHN3
Q2xpZW50Q29ubmVjdGlvbigpOwogI2VuZGlmCiAKLSAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVy
KiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdENv
bnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAg
dm9pZCBjbGVhclNjcmlwdCgpIHsgbV9zY3JpcHQgPSBudWxscHRyOyB9CiAKICAgICBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4g
Km1faW5zcGVjdG9yQ29udHJvbGxlcjsgfQogCiAgICAgV29ya2VyVGhyZWFkJiB0aHJlYWQoKSBj
b25zdCB7IHJldHVybiBtX3RocmVhZDsgfQogCisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFk
KCkgY29uc3QgZmluYWw7CisKICAgICB1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpoYXNQ
ZW5kaW5nQWN0aXZpdHk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFRhc2smJikgZmluYWw7IC8vIEV4
ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCkBAIC0x
MTksNyArMTIyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1
c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAotICAgIGJvb2wgaXNDbG9zaW5nKCkgeyByZXR1cm4g
bV9jbG9zaW5nOyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2Nsb3Npbmc7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRy
PEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjU0OGUwODQ4YmUzNTIyYjZhZDljMzI4NTMzOTc0NmM3YzM5NzQyOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgorCituYW1lc3Bh
Y2UgV1RGIHsKK2NsYXNzIFRocmVhZDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSgp
ID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgV1RGOjpUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQ2xvc2luZygpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpID0gMDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmY5YmY4M2U5MzBkZDE2NWQ4YTMzMDQ3MDUyYWQ1NWQyMmZhZmE3OAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVu
TG9vcFRpbWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlSGVhcEFjY2VzcygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3Mo
KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpK
U1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpU
aW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJt
aW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4IDY2ZWNkNTM2
ZjgxM2QwMjljNDk3ZjFhZWE3ZjIxOWVkZmM3NWIzNzUuLmJiNjFmYzVmMmE5N2RiODRiMTEzYmUy
MjNjN2E3YWRjNzE5YjQ5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNp
bmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCi0jaW5j
bHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaWYgVVNFKEdMSUIpCkBA
IC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKICAgICBJc0ZvckRlYnVnZ2luZyBtX2lzRm9yRGVi
dWdnaW5nIHsgSXNGb3JEZWJ1Z2dpbmc6Ok5vIH07CiB9OwogCi12b2lkIFdvcmtlclJ1bkxvb3A6
OnJ1bihXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cnVu
KFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0KQogewogICAgIFJ1bkxvb3BTZXR1
cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwogICAgIE1v
ZGVQcmVkaWNhdGUgbW9kZVByZWRpY2F0ZShkZWZhdWx0TW9kZSgpKTsKQEAgLTE0MywxMyArMTQz
LDEzIEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0
KQogICAgIHJ1bkNsZWFudXBUYXNrcyhjb250ZXh0KTsKIH0KIAotTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCBXb3JrZXJSdW5Mb29wOjpydW5JbkRlYnVnZ2VyTW9kZShXb3JrZXJHbG9iYWxTY29wZSYg
Y29udGV4dCkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1
Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmIGNvbnRleHQpCiB7CiAgICAgUnVu
TG9vcFNldHVwIHNldHVwKCp0aGlzLCBSdW5Mb29wU2V0dXA6OklzRm9yRGVidWdnaW5nOjpZZXMp
OwogICAgIHJldHVybiBydW5Jbk1vZGUoJmNvbnRleHQsIE1vZGVQcmVkaWNhdGUgeyBkZWJ1Z2dl
ck1vZGUoKSB9LCBXYWl0Rm9yTWVzc2FnZSk7CiB9CiAKLU1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
V29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRNb2RlKQorTWVzc2FnZVF1ZXVlV2FpdFJlc3Vs
dCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgd2FpdE1vZGUpCiB7CiAgICAgQVNT
RVJUKG1vZGUgIT0gZGVidWdnZXJNb2RlKCkpOwogICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhp
cywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2luZzo6Tm8pOwpAQCAtMTU4LDEwICsxNTgsMTAg
QEAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2Vy
R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1NZXNz
YWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxT
Y29wZSogY29udGV4dCwgY29uc3QgTW9kZVByZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3
YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2Rl
KFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zdCBNb2RlUHJlZGljYXRl
JiBwcmVkaWNhdGUsIFdhaXRNb2RlIHdhaXRNb2RlKQogewogICAgIEFTU0VSVChjb250ZXh0KTsK
LSAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVu
dCgpKTsKKyAgICBBU1NFUlQoY29udGV4dC0+dW5kZXJseWluZ1RocmVhZCgpID09ICZUaHJlYWQ6
OmN1cnJlbnQoKSk7CiAKICAgICBKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlv
bkNhbGxiYWNrIHRpbWVyQWRkZWRUYXNrID0gV1RGOjpjcmVhdGVTaGFyZWRUYXNrPEpTQzo6SlNS
dW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uVHlwZT4oW3RoaXNdIHsKICAgICAgICAgLy8g
V2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgaGVyZSwgd2UganVzdCB3YW50IHRvIGxvb3Ag
YXJvdW5kIHJ1bkluTW9kZQpAQCAtMTg2LDEzICsxODYsMTMgQEAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQs
IGNvbnMKICAgICBpZiAod2FpdE1vZGUgPT0gV2FpdEZvck1lc3NhZ2UgJiYgcHJlZGljYXRlLmlz
RGVmYXVsdE1vZGUoKSAmJiBtX3NoYXJlZFRpbWVyLT5pc0FjdGl2ZSgpKQogICAgICAgICB0aW1l
b3V0RGVsYXkgPSBzdGQ6Om1pbih0aW1lb3V0RGVsYXksIG1fc2hhcmVkVGltZXItPmZpcmVUaW1l
RGVsYXkoKSk7CiAKLSAgICBpZiAoV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gY29u
dGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byogc2NyaXB0ID0gY29udGV4dC0+c2NyaXB0
KCkpIHsKICAgICAgICAgc2NyaXB0LT5yZWxlYXNlSGVhcEFjY2VzcygpOwogICAgICAgICBzY3Jp
cHQtPmFkZFRpbWVyU2V0Tm90aWZpY2F0aW9uKHRpbWVyQWRkZWRUYXNrKTsKICAgICB9CiAgICAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byB0YXNrID0gbV9tZXNzYWdl
UXVldWUud2FpdEZvck1lc3NhZ2VGaWx0ZXJlZFdpdGhUaW1lb3V0KHJlc3VsdCwgcHJlZGljYXRl
LCB0aW1lb3V0RGVsYXkpOwotICAgIGlmIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQg
PSBjb250ZXh0LT5zY3JpcHQoKSkgeworICAgIGlmIChhdXRvKiBzY3JpcHQgPSBjb250ZXh0LT5z
Y3JpcHQoKSkgewogICAgICAgICBzY3JpcHQtPmFjcXVpcmVIZWFwQWNjZXNzKCk7CiAgICAgICAg
IHNjcmlwdC0+cmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24odGltZXJBZGRlZFRhc2spOwogICAg
IH0KQEAgLTIyMywxMCArMjIzLDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVu
TG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpydW5DbGVhbnVwVGFza3MoV29y
a2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bkNsZWFudXBU
YXNrcyhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQo
Y29udGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJl
YWQ6OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9
PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAgIEFTU0VSVChtX21lc3NhZ2VRdWV1ZS5raWxsZWQo
KSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgV29ya2Vy
UnVuTG9vcDo6cG9zdERlYnVnZ2VyVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYg
dGFzaykKICAgICBwb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgZGVidWdnZXJNb2RlKCkp
OwogfQogCi12b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNrKFdvcmtlckdsb2Jh
bFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBpZiAoKCFjb250ZXh0
LT5pc0Nsb3NpbmcoKSAmJiBjb250ZXh0LT5zY3JpcHQoKSAmJiAhY29udGV4dC0+c2NyaXB0KCkt
PmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgfHwgbV90YXNrLmlzQ2xlYW51cFRhc2soKSkKICAg
ICAgICAgbV90YXNrLnBlcmZvcm1UYXNrKCpjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSdW5Mb29wLmgKaW5kZXggYThjOWRlYmQ4MGQ4MDk5NTRhN2E5ZDY5MGY3NzQwNmQyNTI4
MjY2OC4uZWUyNmIzN2YyOTljYTY5OWMwNGMwYjFjNzQ0MTUwNDgwODcxNTdmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKQEAgLTM4LDcgKzM4LDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE1vZGVQcmVkaWNhdGU7Ci0gICAgY2xhc3MgV29ya2Vy
R2xvYmFsU2NvcGU7CisgICAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CiAgICAg
Y2xhc3MgV29ya2VyU2hhcmVkVGltZXI7CiAKICAgICBjbGFzcyBXb3JrZXJSdW5Mb29wIHsKQEAg
LTQ3LDEzICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5Xb3JrZXJSdW5M
b29wKCk7CiAgICAgICAgIAogICAgICAgICAvLyBCbG9ja2luZyBjYWxsLiBXYWl0cyBmb3IgdGFz
a3MgYW5kIHRpbWVycywgaW52b2tlcyB0aGUgY2FsbGJhY2tzLgotICAgICAgICB2b2lkIHJ1bihX
b3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICB2b2lkIHJ1bihXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSopOwogCiAgICAgICAgIGVudW0gV2FpdE1vZGUgeyBXYWl0Rm9yTWVzc2FnZSwgRG9u
dFdhaXRGb3JNZXNzYWdlIH07CiAKICAgICAgICAgLy8gV2FpdHMgZm9yIGEgc2luZ2xlIHRhc2sg
YW5kIHJldHVybnMuCi0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdv
cmtlckdsb2JhbFNjb3BlKiwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSA9IFdhaXRGb3JN
ZXNzYWdlKTsKLSAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBydW5JbkRlYnVnZ2VyTW9k
ZShXb3JrZXJHbG9iYWxTY29wZSYpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1
bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwg
V2FpdE1vZGUgPSBXYWl0Rm9yTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgcnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmKTsKIAogICAg
ICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgICAgICBib29sIHRlcm1pbmF0ZWQoKSBjb25zdCB7
IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG1vZGUoKSBjb25zdCB7
IHJldHVybiBtX21vZGU7IH0KIAogICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgdm9pZCBw
ZXJmb3JtVGFzayhXb3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICAgICAgdm9pZCBwZXJmb3Jt
VGFzayhXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSopOwogCiAgICAgICAgICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrIG1fdGFzazsKICAgICAgICAgICAgIFN0cmluZyBtX21vZGU7
CkBAIC04MywxMSArODMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3BTZXR1cDsKLSAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCBydW5Jbk1vZGUoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGlj
YXRlJiwgV2FpdE1vZGUpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bkluTW9k
ZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSosIGNvbnN0IE1vZGVQcmVkaWNhdGUmLCBXYWl0
TW9kZSk7CiAKICAgICAgICAgLy8gUnVucyBhbnkgY2xlYW4gdXAgdGFza3MgdGhhdCBhcmUgY3Vy
cmVudGx5IGluIHRoZSBxdWV1ZSBhbmQgcmV0dXJucy4KICAgICAgICAgLy8gVGhpcyBzaG91bGQg
b25seSBiZSBjYWxsZWQgd2hlbiB0aGUgY29udGV4dCBpcyBjbG9zZWQgb3IgbG9vcCBoYXMgYmVl
biB0ZXJtaW5hdGVkLgotICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJHbG9iYWxT
Y29wZSopOworICAgICAgICB2b2lkIHJ1bkNsZWFudXBUYXNrcyhXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSopOwogCiAgICAgICAgIGJvb2wgaXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QgeyByZXR1
cm4gbV9kZWJ1Z0NvdW50ID49IDE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmNwcApp
bmRleCAzZDZlMGI3YWYwMWUyMTg1ZTFjOWZmOWRiMDdmZmQzMGVkZGQyMTc4Li4zOTA4YmRmM2Ey
OTZjODFiNmY0YmE4ZThlMDhlM2ZjNTgyZWU1ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0LmNwcApAQCAtMjgsMjcgKzI4LDc2IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKLSNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgor
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgor
I2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxT
Y29wZVByb3h5LmgiCisjaW5jbHVkZSAiV29ya2xldFBlbmRpbmdUYXNrcy5oIgorI2luY2x1ZGUg
PHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFdvcmtsZXQpOwogCi1SZWY8V29ya2xldD4gV29ya2xldDo6Y3JlYXRlKCkKK1dvcmtsZXQ6Oldv
cmtsZXQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrbGV0KCkpOwogfQogCi1Xb3JrbGV0
OjpXb3JrbGV0KCkKK1dvcmtsZXQ6On5Xb3JrbGV0KCkgPSBkZWZhdWx0OworCitEb2N1bWVudCog
V29ya2xldDo6ZG9jdW1lbnQoKQoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dv
cmtsZXRzLTEvI2RvbS13b3JrbGV0LWFkZG1vZHVsZQordm9pZCBXb3JrbGV0OjphZGRNb2R1bGUo
Y29uc3QgU3RyaW5nJiBtb2R1bGVVUkxTdHJpbmcsIFdvcmtsZXRPcHRpb25zJiYgb3B0aW9ucywg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiBkb2N1bWVu
dCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoaXMgZnJhbWUgaXMg
ZGV0YWNoZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBVUkwgbW9kdWxl
VVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1vZHVsZVVSTFN0cmluZyk7CisgICAgaWYgKCFt
b2R1bGVVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IFN5bnRheEVycm9yLCAiTW9kdWxlIFVSTCBpcyBpbnZhbGlkIl9zIH0pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKG1fcHJveGllcy5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJv
eGllcy5hcHBlbmRWZWN0b3IoY3JlYXRlR2xvYmFsU2NvcGVzKCkpOworCisgICAgYXV0byBwZW5k
aW5nVGFza3MgPSBXb3JrbGV0UGVuZGluZ1Rhc2tzOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocHJv
bWlzZSksIG1fcHJveGllcy5zaXplKCkpOworICAgIG1fcGVuZGluZ1Rhc2tzU2V0LmFkZChwZW5k
aW5nVGFza3MuY29weVJlZigpKTsKKworICAgIGZvciAoYXV0byYgcHJveHkgOiBtX3Byb3hpZXMp
IHsKKyAgICAgICAgcHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFtw
ZW5kaW5nVGFza3MgPSBwZW5kaW5nVGFza3MuY29weVJlZigpLCBtb2R1bGVVUkwgPSBtb2R1bGVV
UkwuaXNvbGF0ZWRDb3B5KCksIGNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscywgcGVu
ZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAgICAgZG93bmNhc3Q8V29ya2xl
dEdsb2JhbFNjb3BlPihjb250ZXh0KS5mZXRjaEFuZEludm9rZVNjcmlwdChtb2R1bGVVUkwsIGNy
ZWRlbnRpYWxzLCBbcGVuZGluZ1Rhc2tzID0gV1RGTW92ZShwZW5kaW5nVGFza3MpLCBwZW5kaW5n
QWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
JiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVuZGluZ1Rhc2tzKSwgZXhjZXB0aW9uID0gY3Jvc3NU
aHJlYWRDb3B5KGV4Y2VwdGlvbiksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0Fj
dGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdUYXNrcy0+YWJvcnQoV1RGTW92ZSgqZXhj
ZXB0aW9uKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBlbmRpbmdUYXNrcy0+ZGVjcmVtZW50Q291bnRlcigpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2Rl
KCkpOworICAgIH0KK30KKwordm9pZCBXb3JrbGV0OjpmaW5pc2hQZW5kaW5nVGFza3MoV29ya2xl
dFBlbmRpbmdUYXNrcyYgdGFza3MpCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQobV9wZW5kaW5nVGFza3NTZXQuY29udGFpbnMoJnRhc2tzKSk7CisKKyAgICBtX3Bl
bmRpbmdUYXNrc1NldC5yZW1vdmUoJnRhc2tzKTsKIH0KIAotdm9pZCBXb3JrbGV0OjphZGRNb2R1
bGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK2NvbnN0IGNoYXIqIFdvcmtsZXQ6
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBBZGQgcHJvcGVy
IGltcGxlbWVudGF0aW9uLgotICAgIFVOVVNFRF9QQVJBTShtb2R1bGVVUkwpOwotICAgIHByb21p
c2UucmVzb2x2ZSgpOworICAgIHJldHVybiAiV29ya2xldCI7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaAppbmRleCBiMmJlZGM2NTg2NWI3NGY1
Zjk5NTZmMDRjZmNjYzNmODM1MTlmMmUxLi40MTY4Njc0YzczYjI5OTA5YmE2Mjk2MjU3MjFiMzgw
NTNlMjI3YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5oCkBAIC0yNSwyNyArMjUsNDUg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNs
dWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJTY3JpcHRX
cmFwcGFibGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3Mg
V29ya2xldEdsb2JhbFNjb3BlUHJveHk7CitjbGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzOwogCi1z
dHJ1Y3QgV29ya2xldE9wdGlvbnM7Ci0KLWNsYXNzIFdvcmtsZXQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXb3JrbGV0PiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CitjbGFzcyBXb3JrbGV0IDogcHVi
bGljIFJlZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxXb3JrbGV0PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdv
cmtsZXQ+IGNyZWF0ZSgpOwotICAgIHZpcnR1YWwgfldvcmtsZXQoKSA9IGRlZmF1bHQ7CisgICAg
dmlydHVhbCB+V29ya2xldCgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNb2R1bGUoY29uc3Qg
U3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmKTsKKworICAgIHZvaWQgZmluaXNoUGVuZGluZ1Rhc2tzKFdvcmtsZXRQZW5kaW5nVGFz
a3MmKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8
V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiYgcHJveGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
eGllczsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2xldCgpOworICAgIGV4cGxpY2l0IFdvcmts
ZXQoRG9jdW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWY8V29ya2xl
dEdsb2JhbFNjb3BlUHJveHk+PiBjcmVhdGVHbG9iYWxTY29wZXMoKSA9IDA7CisKKyAgICAvLyBB
Y3RpdmVET01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOworCisgICAgVmVjdG9yPFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IG1f
cHJveGllczsKKyAgICBIYXNoU2V0PFJlZlB0cjxXb3JrbGV0UGVuZGluZ1Rhc2tzPj4gbV9wZW5k
aW5nVGFza3NTZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXQuaWRsCmluZGV4IDBiNzc0YzI3NGFhZjIwZTBjYzg4Mzc3MjcxYzcxNmEwMGZh
ZjllNjEuLjI5M2NmMDZlMTU1NmU5YjU3N2EyYTRkMTk1ODhkMTY4MDZhYmVlNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuaWRsCkBAIC0yNCw4ICsyNCwxMCBAQAogKi8KIAogWworICAg
IEFjdGl2ZURPTU9iamVjdCwKICAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBHbG9iYWw9V29ya2xl
dCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgV29ya2xldCB7Ci0gICAg
W0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmlu
ZyBtb2R1bGVVUkwsIG9wdGlvbmFsIFdvcmtsZXRPcHRpb25zIG9wdGlvbnMpOworICAgIFByb21p
c2U8dW5kZWZpbmVkPiBhZGRNb2R1bGUoVVNWU3RyaW5nIG1vZHVsZVVSTCwgb3B0aW9uYWwgV29y
a2xldE9wdGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldENvbnNvbGVDbGllbnQuY3BwCmluZGV4IDRlNTE3YTAxYTczNDczYjBiZDQ1OWY5ZDUw
Y2RlMjI4YTgwNzY5ZDAuLmZkZjU1MGY0NDk5MmQ5ZTYwNDMxZTdkMjNmZGZiMzlkMWQwZTkzYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5j
cHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3Jr
bGV0Q29uc29sZUNsaWVudC5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEFy
Z3VtZW50cy5oPgpAQCAtNzEsNCArNjksMyBAQCB2b2lkIFdvcmtsZXRDb25zb2xlQ2xpZW50Ojpy
ZWNvcmRFbmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+Jgogdm9p
ZCBXb3JrbGV0Q29uc29sZUNsaWVudDo6c2NyZWVuc2hvdChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
UmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgeyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmgK
aW5kZXggZmIzZDAxZGFjNjk4OGQwMDIyNWE2ZGZkZGRlNTkzY2Q3MTk4NTg4NC4uMTJiYjQ5YTVk
YWZiOGFmM2MzY2Q5OTY3ZjZmMGJhMWRjM2I1NTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTYyLDQgKzYwLDMgQEAgcHJpdmF0ZToK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggM2I3NTgyYWZmY2QwNGIxNDYy
OTBmM2E3NDY4NjczNGFjNjkwZmVmMi4uZmE2ZDMxNzM5YTEwYzY4MWRhYTE5ZjMwYmU2Yzk1MGI5
NDJjMjJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
V29ya2xldEdsb2JhbFNjb3BlLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIKQEAgLTM2LDcgKzM0LDYgQEAKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCi0jaW5jbHVkZSAiV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRDYWxsU3RhY2suaD4KQEAgLTQ3LDEwICs0NCwyNCBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVj
dG9yOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2xldEdsb2JhbFNjb3BlKTsK
IAorV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB3aW5k
b3dVUkwsIEpTQzo6UnVudGltZUZsYWdzIGpzUnVudGltZUZsYWdzKQorICAgIDogbV9zY3JpcHQo
bWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4odGhpcykpCisgICAgLCBtX3RvcE9y
aWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpCisgICAgLCBtX3VybCh3aW5kb3dV
UkwpCisgICAgLCBtX2pzUnVudGltZUZsYWdzKGpzUnVudGltZUZsYWdzKQoreworICAgIGF1dG8g
YWRkUmVzdWx0ID0gYWxsV29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKKyAgICBB
U1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0KTsKKworICAgIHNldFNlY3VyaXR5T3Jp
Z2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJl
ZigpKSk7CisgICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNl
Y3VyaXR5UG9saWN5PihVUkwgeyB0aGlzLT51cmwoKSB9LCAqdGhpcykpOworfQorCiBXb3JrbGV0
R2xvYmFsU2NvcGU6OldvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxK
U0M6OlZNPiYmIHZtLCBTY3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IG1fZG9jdW1lbnQo
bWFrZVdlYWtQdHIoZG9jdW1lbnQpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcj4oV1RGTW92ZSh2bSksIHRoaXMpKQogICAgICwgbV90b3BPcmlnaW4o
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwoY29kZS51cmwoKSkK
ICAgICAsIG1fY29kZShXVEZNb3ZlKGNvZGUpKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxs
V29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKQEAgLTYxLDcgKzcyLDcgQEAgV29y
a2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50LCBS
ZWY8SlNDOjpWTT4mJiB2bSwgU2MKICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgpKTsKIAogICAg
IHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90
b3BPcmlnaW4uY29weVJlZigpKSk7Ci0gICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VV
bmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBtX2NvZGUudXJsKCkgfSwgKnRoaXMp
KTsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJp
dHlQb2xpY3k+KFVSTCB7IHRoaXMtPnVybCgpIH0sICp0aGlzKSk7CiB9CiAKIFdvcmtsZXRHbG9i
YWxTY29wZTo6fldvcmtsZXRHbG9iYWxTY29wZSgpCkBAIC0xMTMsNyArMTI0LDggQEAgU3RyaW5n
IFdvcmtsZXRHbG9iYWxTY29wZTo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2
b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZXZhbHVhdGUoKQogewotICAgIG1fc2NyaXB0LT5ldmFs
dWF0ZShtX2NvZGUpOworICAgIGlmIChtX2NvZGUpCisgICAgICAgIG1fc2NyaXB0LT5ldmFsdWF0
ZSgqbV9jb2RlKTsKIH0KIAogYm9vbCBXb3JrbGV0R2xvYmFsU2NvcGU6OmlzSlNFeGVjdXRpb25G
b3JiaWRkZW4oKSBjb25zdApAQCAtMTM1LDcgKzE0Nyw3IEBAIFVSTCBXb3JrbGV0R2xvYmFsU2Nv
cGU6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBGb3JjZVVURjgpIGNvbnN0CiB7CiAg
ICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwotICAgIHJldHVybiBV
UkwobV9jb2RlLnVybCgpLCB1cmwpOworICAgIHJldHVybiBVUkwodGhpcy0+dXJsKCksIHVybCk7
CiB9CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGlu
ZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFj
aykKQEAgLTE3MSw1ICsxODMsMTEgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xldEdsb2JhbFNjb3Bl
OjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJuIFJlZmVycmVyUG9saWN5OjpOb1Jl
ZmVycmVyOwogfQogCit2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3Jp
cHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0
aW9uLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
R2xvYmFsU2NvcGUuaAppbmRleCAyNWQ1NDlhYzRhMGFhNmZmNzUyODc1NWQ3MDQ3YzgxNGVlN2Rj
NDA0Li5hMTVlZThmMTJkMGE4N2RhZjU2MWVlMWUzN2E3MGRjNjZkNGQwNWFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMjYsMzAgKzI2LDMy
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0KICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgV29ya2VyRXZlbnRMb29wOwotY2xhc3MgV29y
a2xldFNjcmlwdENvbnRyb2xsZXI7CiAKIGVudW0gV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmll
clR5cGUgeyB9OwogdXNpbmcgV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9IE9iamVjdElk
ZW50aWZpZXI8V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1jbGFzcyBXb3Jr
bGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xvYmFsU2NvcGU+LCBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2xldEdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9i
YWxTY29wZSgpOwpAQCAtNTcsMTEgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB1c2luZyBXb3JrbGV0
R2xvYmFsU2NvcGVzU2V0ID0gSGFzaFNldDxjb25zdCBXb3JrbGV0R2xvYmFsU2NvcGUqPjsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV29ya2xldEdsb2JhbFNjb3Blc1NldCYgYWxsV29ya2xl
dEdsb2JhbFNjb3Blc1NldCgpOwogCisjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiAgICAg
dmlydHVhbCBib29sIGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICB2aXJ0dWFsIGJvb2wg
aXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5k
aWYKIAogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29wKCkgZmluYWw7CiAKLSAgICBj
b25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZS51cmwoKTsgfQorICAg
IGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91cmw7IH0KIAogICAgIHZv
aWQgZXZhbHVhdGUoKTsKIApAQCAtNzAsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCi0gICAgV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9Cisg
ICAgV29ya2xldFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGZpbmFsIHsgcmV0dXJuIG1fc2Ny
aXB0LmdldCgpOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsKIApAQCAtNzksNiArODYsMTAg
QEAgcHVibGljOgogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCkgZmluYWwg
eyByZXR1cm4gbnVsbHB0cjsgfQogCisgICAgLy8gV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
CisgICAgVGhyZWFkKiB1bmRlcmx5aW5nVGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bnVsbHB0cjsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9p
c0Nsb3Npbmc7IH0KKwogICAgIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNTZWN1cmVDb250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KIApAQCAtODYsNyArOTcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIHByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogCisgICAgdm9pZCBmZXRjaEFuZEludm9r
ZVNjcmlwdChjb25zdCBVUkwmLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVjdGVkOgorICAg
IFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBVUkwmIHdpbmRvd1VSTCwgSlNDOjpSdW50aW1lRmxh
Z3MpOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYsIFJlZjxKU0M6OlZNPiYmLCBT
Y3JpcHRTb3VyY2VDb2RlJiYpOwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShjb25zdCBXb3JrbGV0
R2xvYmFsU2NvcGUmKSA9IGRlbGV0ZTsKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2xldEds
b2JhbFNjb3BlJiYpID0gZGVsZXRlOwpAQCAtMTM2LDggKzE1MCwxMCBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1fZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVmYXVsdFRhc2tHcm91cDsKIAorICAgIFVSTCBtX3Vy
bDsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX2pzUnVudGltZUZsYWdzOwotICAgIFNjcmlwdFNv
dXJjZUNvZGUgbV9jb2RlOworICAgIE9wdGlvbmFsPFNjcmlwdFNvdXJjZUNvZGU+IG1fY29kZTsK
KyAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKQEAgLTE0NSw0ICsxNjEsMyBAQCBwcml2YXRlOgogU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGUpCiBzdGF0aWMgYm9vbCBpc1R5cGUo
Y29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1cm4g
Y29udGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRHbG9iYWxTY29wZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuaWRsCmluZGV4IGQ3NTlmMGNlMWQxNmY4NjkxODYwMTI3NzZmMGRiMTZiNjFiYWE0Nzgu
LmJmMDcxMzg0YTNmMzA4ZmY2YzY0NWM5NTg0Y2IzYjFjYjllNWUwOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbApAQCAtMjYsOCArMjYsNiBA
QAogWwogICAgIEN1c3RvbVByb3h5VG9KU09iamVjdCwKICAgICBFeHBvc2VkPVdvcmtsZXQsCi0g
ICAgRW5hYmxlZEF0UnVudGltZT1DU1NQYWludGluZ0FQSSwKLSAgICBDb25kaXRpb25hbD1DU1Nf
UEFJTlRJTkdfQVBJLAogICAgIEpTTGVnYWN5UGFyZW50PUpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZSwKICAgICBJbXBsaWNpdFRoaXMsCiAgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmpl
Y3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYWM1ZDkxY2M3ZDAyNDIwYjVmYWZmMjE5MWMwZWVmOGZmOWE1ZDdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlUHJveHkuaApAQCAtMCwwICsxLDQ2IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJl
cXVlc3RDcmVkZW50aWFscy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtsZXRQZW5kaW5nVGFz
a3M7CisKK2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5PiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+V29ya2xldEdsb2JhbFNjb3BlUHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJv
b2wgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSgpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRQZW5kaW5nVGFza3MuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRp
bmdUYXNrcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZmZTVkNzYxYWY0NmYyNjE0MTE3OTA0YWMxMDRjMzA0
OTExNDVkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRQZW5kaW5nVGFza3MuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V29ya2xldFBlbmRpbmdUYXNrcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dvcmtsZXRQ
ZW5kaW5nVGFza3M6OldvcmtsZXRQZW5kaW5nVGFza3MoV29ya2xldCYgd29ya2xldCwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgOiBtX3dvcmts
ZXQobWFrZVdlYWtQdHIod29ya2xldCkpCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNl
KSkKKyAgICAsIG1fY291bnRlcihjb3VudGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Cit9CisKK3ZvaWQgV29ya2xldFBlbmRpbmdUYXNrczo6YWJvcnQoRXhjZXB0aW9uJiYgZXhj
ZXB0aW9uKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9jb3Vu
dGVyID09IC0xKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvdW50ZXIgPSAtMTsKKyAgICBt
X3Byb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgaWYgKG1fd29ya2xldCkK
KyAgICAgICAgbV93b3JrbGV0LT5maW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworfQorCit2b2lk
IFdvcmtsZXRQZW5kaW5nVGFza3M6OmRlY3JlbWVudENvdW50ZXIoKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9jb3VudGVyID09IC0xKQorICAgICAgICByZXR1
cm47CisKKyAgICAtLW1fY291bnRlcjsKKyAgICBpZiAoIW1fY291bnRlcikgeworICAgICAgICBt
X3Byb21pc2UucmVzb2x2ZSgpOworICAgICAgICBpZiAobV93b3JrbGV0KQorICAgICAgICAgICAg
bV93b3JrbGV0LT5maW5pc2hQZW5kaW5nVGFza3MoKnRoaXMpOworICAgIH0KK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFBlbmRpbmdUYXNrcy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRp
bmdUYXNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczM2Q2YmJhYmUwZTliOTNlMjgzYTMyODY3MTVjYTg5ZGMy
NmMwOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
UGVuZGluZ1Rhc2tzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV29ya2xldDsKKwor
Ly8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5nLXRhc2tz
LXN0cnVjdAorY2xhc3MgV29ya2xldFBlbmRpbmdUYXNrcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxXb3JrbGV0UGVuZGluZ1Rhc2tzPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxX
b3JrbGV0UGVuZGluZ1Rhc2tzPiBjcmVhdGUoV29ya2xldCYgd29ya2xldCwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSwgaW50IGNvdW50ZXIpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXb3JrbGV0UGVuZGluZ1Rhc2tzKHdvcmtsZXQsIFdURk1vdmUocHJv
bWlzZSksIGNvdW50ZXIpKTsKKyAgICB9CisKKyAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbiYmKTsK
KyAgICB2b2lkIGRlY3JlbWVudENvdW50ZXIoKTsKKworcHJpdmF0ZToKKyAgICBXb3JrbGV0UGVu
ZGluZ1Rhc2tzKFdvcmtsZXQmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiwgaW50IGNvdW50
ZXIpOworCisgICAgV2Vha1B0cjxXb3JrbGV0PiBtX3dvcmtsZXQ7CisgICAgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+IG1fcHJvbWlzZTsKKyAgICBpbnQgbV9jb3VudGVyOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDIwYTZmODU2MTg1OGFkZmJlMmUyYmMxOGViZjcx
NTBiOTdhZDE0ZjguLjE3ZGY1ZTFmM2NmMDY1NzE0YmNlZjc1ZWQ4NWZjYWQ1MzhmNmU4MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTI2LDggKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkp
Ci0KKyNpbmNsdWRlICJKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpTRXhl
Y1N0YXRlLmgiCkBAIC01Niw2ICs1NSwxMSBAQCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6V29y
a2xldFNjcmlwdENvbnRyb2xsZXIoUmVmPFZNPiYmIHZtLCBXb3JrbGV0R2xvYmFsU2NvcAogICAg
IEpTVk1DbGllbnREYXRhOjppbml0Tm9ybWFsV29ybGQobV92bS5nZXQoKSk7CiB9CiAKK1dvcmts
ZXRTY3JpcHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihXb3JrbGV0R2xvYmFs
U2NvcGUqIHdvcmtsZXRHbG9iYWxTY29wZSkKKyAgICA6IFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
KFZNOjpjcmVhdGUoKSwgd29ya2xldEdsb2JhbFNjb3BlKQoreworfQorCiBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6fldvcmtsZXRTY3JpcHRDb250cm9sbGVyKCkKIHsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayh2bSgpKTsKQEAgLTE0NSwxMCArMTQ5LDE5IEBAIHZvaWQgV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OmluaXRTY3JpcHQoKQogICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICBpZiAo
aXM8UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KG1fd29ya2xldEdsb2JhbFNjb3BlKSkgewogICAg
ICAgICBpbml0U2NyaXB0V2l0aFN1YmNsYXNzPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90
b3R5cGUsIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUsIFBhaW50V29ya2xldEdsb2JhbFNjb3Bl
PigpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FV
RElPKQorICAgIGlmIChpczxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFs
U2NvcGUpKSB7CisgICAgICAgIGluaXRTY3JpcHRXaXRoU3ViY2xhc3M8SlNBdWRpb1dvcmtsZXRH
bG9iYWxTY29wZVByb3RvdHlwZSwgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSwgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU+KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMTk2LDUgKzIwOSw2MiBAQCB2b2lkIFdvcmts
ZXRTY3JpcHRDb250cm9sbGVyOjpzZXRFeGNlcHRpb24oSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlv
bikKICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgZXhjZXB0
aW9uKTsKIH0KIAordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6cmVsZWFzZUhlYXBBY2Nl
c3MoKQoreworICAgIG1fdm0tPmhlYXAucmVsZWFzZUFjY2VzcygpOworfQorCit2b2lkIFdvcmts
ZXRTY3JpcHRDb250cm9sbGVyOjphY3F1aXJlSGVhcEFjY2VzcygpCit7CisgICAgbV92bS0+aGVh
cC5hY3F1aXJlQWNjZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFk
ZFRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0
aW9uQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpT
UnVuTG9vcFRpbWVyKiB0aW1lcikgeworICAgICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB0aW1lci0+YWRkVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2sp
OworICAgIH07CisKKyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxs
YmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFj
aygpKTsKKyAgICBwcm9jZXNzVGltZXIobV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOwor
fQorCit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVUaW1lclNldE5vdGlmaWNh
dGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxi
YWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1RpbWVyID0gWyZdIChKU1J1bkxvb3BUaW1lciogdGlt
ZXIpIHsKKyAgICAgICAgaWYgKCF0aW1lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
dGltZXItPnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKGNhbGxiYWNrKTsKKyAgICB9OworCisg
ICAgcHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAg
cHJvY2Vzc1RpbWVyKG1fdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKSk7CisgICAgcHJv
Y2Vzc1RpbWVyKG1fdm0tPmRlZmVycmVkV29ya1RpbWVyLnB0cigpKTsKK30KKwordm9pZCBXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpCit7Cisg
ICAgaWYgKG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
eworICAgICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCisgICAgICAgIC8vIHRlcm1pbmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNUZXJt
aW5hdGluZ0V4ZWN1dGlvbigpIHdpbGwKKyAgICAgICAgLy8gYWNjdXJhdGVseSByZWZsZWN0IHRo
YXQgbGV4aWNhbEdsb2JhbE9iamVjdCB3aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgor
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25Mb2Nr
KTsKKyAgICAgICAgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uID0gdHJ1ZTsKKyAgICB9CisgICAg
bV92bS0+bm90aWZ5TmVlZFRlcm1pbmF0aW9uKCk7Cit9CisKK2Jvb2wgV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdAoreworICAgIC8vIFNlZSBj
b21tZW50cyBpbiBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRleCB1
c2FnZS4KKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2NoZWR1bGVkVGVybWluYXRpb25M
b2NrKTsKKyAgICByZXR1cm4gbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGUzNmQyYTI0MmJmNTQ2NGZhMjdjZjNkYTlh
YjUyODRmMDAwNGQ2ZWUuLjZkNDNjZTVmOWZmZDJhNzBhZjBiZjZlNWFlZTU0Y2Q4ZmFjNzJmMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaApAQCAtMjUsOCArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1Nf
UEFJTlRJTkdfQVBJKQotCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
dHJvbmcuaD4KQEAgLTQ2LDkgKzQ1LDExIEBAIGNsYXNzIFdvcmtsZXRDb25zb2xlQ2xpZW50Owog
Y2xhc3MgV29ya2xldEdsb2JhbFNjb3BlOwogY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiAK
LWNsYXNzIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKKy8vIEZJWE1FOiBXZSBzaG91bGQgc2hh
cmUgbW9yZSBjb2RlIHdpdGggV29ya2VyU2NyaXB0Q29udHJvbGxlci4KK2NsYXNzIFdvcmtsZXRT
Y3JpcHRDb250cm9sbGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtsZXRTY3JpcHRDb250cm9sbGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgV29ya2xldFNjcmlw
dENvbnRyb2xsZXIoV29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgV29ya2xldFNjcmlwdENvbnRy
b2xsZXIoUmVmPEpTQzo6Vk0+JiYsIFdvcmtsZXRHbG9iYWxTY29wZSopOwogICAgIH5Xb3JrbGV0
U2NyaXB0Q29udHJvbGxlcigpOwogCkBAIC02NCw2ICs2NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBkaXNh
YmxlV2ViQXNzZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCisgICAgdm9pZCBy
ZWxlYXNlSGVhcEFjY2VzcygpIGZpbmFsOworICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3MoKSBm
aW5hbDsKKworICAgIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BU
aW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAgdm9pZCByZW1vdmVU
aW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlv
bkNhbGxiYWNrKSBmaW5hbDsKKworICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlv
bigpOworICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0IGZpbmFsOworCiAg
ICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5l
ZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0
aW9uLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogCkBAIC04
Nyw3ICs5Nyw4IEBAIHByaXZhdGU6CiAgICAgV29ya2xldEdsb2JhbFNjb3BlKiBtX3dvcmtsZXRH
bG9iYWxTY29wZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2xldENvbnNvbGVDbGllbnQ+IG1f
Y29uc29sZUNsaWVudDsKICAgICBKU0M6OlN0cm9uZzxKU1dvcmtsZXRHbG9iYWxTY29wZT4gbV93
b3JrbGV0R2xvYmFsU2NvcGVXcmFwcGVyOworICAgIG11dGFibGUgTG9jayBtX3NjaGVkdWxlZFRl
cm1pbmF0aW9uTG9jazsKKyAgICBib29sIG1faXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiB7IGZhbHNl
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCmluZGV4IDZhMTAxYzM5NTkzY2M0YzE1NGM3NDVmNmQ3OTczN2EwMmE5
MjNmNmQuLjBiOWFiMWRjZTM0YTUyMGQ4MmUyZmFkNWY1ZDA2YTg2OWVmNzRkOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3AoKTsKICAgICB9CiAKLSAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5z
dGFydCgpOyB9CisgICAgdm9pZCBzdGFydCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RhcnQoeyB9KTsg
fQogICAgIHZvaWQgc3RvcCgpIHsgbV9kZXN0aW5hdGlvbi0+c3RvcCgpOyB9CiAgICAgYm9vbCBp
c1BsYXlpbmcoKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKTsgfQogICAgIHVu
c2lnbmVkIGZyYW1lc1BlckJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmZy
YW1lc1BlckJ1ZmZlcigpIDsgfQpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAKICAgICBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbklkZW50aWZpZXIgbV9pZDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0
aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9k
ZXN0aW5hdGlvbjsKICAgICBSZWZQdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4gbV9wcm90ZWN0
VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5jcHAKaW5kZXggMDY5NDViYWZkNWQxODljN2EwZjljNzI0MDJiYjg4OWRjODA3ZjZm
NC4uODIxMzgwMGI5ZjEwYzU4MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApAQCAtNDMsMTAgKzQzLDEwIEBAIHVzaW5nIEF1ZGlv
QnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CiB1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbjsKIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1
ZGlvSU9DYWxsYmFjazsKIAotc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ss
CitSZWY8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVh
dGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1
ZTxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShj
YWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91
dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSk7CiB9CiAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQpAQCAtNzcsOCArNzcsOSBAQCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkoKQogICAgIH0pOwogfQogCi12b2lkIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RhcnQoKQordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkKQogeworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlz
cGF0Y2hUb1JlbmRlclRocmVhZCk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCiAgICAgICAgIE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RhcnRBdWRpb0Rlc3RpbmF0
aW9uKG1fZGVzdGluYXRpb25JRCksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlcjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyks
IDApOwpAQCAtODksMTkgKzkwLDMxIEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpzdG9wKCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0
aW9uSUQpLAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OlN0b3BBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworICAgIG1fZGlz
cGF0Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0Rh
dGEmIGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogeworICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgcmVuZGVyaW5nIG9uIHRoZSBtYWlu
IHRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBpcyBub3QgYWN0aXZlLCB3aGljaCBpcyBsaWtlbHkg
bm90IGEgZ29vZCBpZGVhLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEu
Y2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNy
ZWF0ZShhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJh
bWVzVG9Qcm9jZXNzLCBmYWxzZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlv
QnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNl
dENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0t
PmRhdGEoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBtX2NhbGxiYWNr
LnJlbmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcywg
YXVkaW9CdXNEYXRhLm91dHB1dFBvc2l0aW9uKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgYXV0byBkb1JlbmRlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGF1ZGlvQnVzID0gV1RGTW92ZShhdWRpb0J1cyksIGZyYW1lc1RvUHJvY2VzcyA9IGF1ZGlv
QnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uID0gYXVkaW9CdXNEYXRhLm91
dHB1dFBvc2l0aW9uXSB7CisgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdl
dCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKKyAgICB9OworICAgIGlmICht
X2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhy
ZWFkKFtkb1JlbmRlciA9IFdURk1vdmUoZG9SZW5kZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZG9SZW5k
ZXIoKTsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb1JlbmRlcigpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCmluZGV4IGFkYTZmZWVmZjM3NDMwZjNjNGRkMzdm
MTNjN2UzYTRlNzY2YTM5ZGEuLjkwN2VjZjVhNzdmNDJiOTQ3ODkwYmRmM2ExN2UxOGVjZmI1YWE1
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaApAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKICAgICB1c2lu
ZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2s7CiAKLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJh
Y2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSk7CisgICAgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpOwogCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYs
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsK
ICAgICB+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCi0gICAg
dm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChGdW5j
dGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIG92ZXJyaWRlOwogICAg
IHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9pc1BsYXlpbmc7IH0KICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV9mcmFtZXNQZXJCdWZmZXIgeyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbklkZW50aWZpZXIgbV9kZXN0aW5hdGlvbklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcg
eyBmYWxzZSB9OworICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNw
YXRjaFRvUmVuZGVyVGhyZWFkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3ku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmNwcAppbmRleCAyZTg2MWExZTRlMzFlMTQ3ODJhMmI5ZTgzMTk4YzE2N2E1OTQ2MTEzLi5kNWFl
ZjE1MzRhZDIzNjVkMjEzN2ExN2I2ZjZkNDRlMWVmODUxOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2Vi
TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCi1zdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCitSZWY8V2ViQ29yZTo6QXVkaW9EZXN0aW5h
dGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAg
ICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmgKaW5kZXggODE3YzRjMjliMTczMmY0NWY5MGUyMTU1ZDY1Y2VlODQ3YzE3YmVlMi4u
NmI3YjljZTYwM2E4NzM5ZTcxZDkwNDc1ZmNjNzg3MjY4ZjZkOWZlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAg
LTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfQVVESU8p
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKKyAgICBSZWY8V2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRp
b0lPQ2FsbGJhY2smLAogICAgICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NP
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBmYWY5M2I3M2EyYjAxNDEwMzgw
NWE1Y2M2YmNhN2I2NTNhNjUyN2I3Li5lYmJiM2JlYTZlZGJiNDdiY2I0ZTJkMGIyOTdmY2QwNWVi
YTYzMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02OSw3ICs2OSw3IEBA
IFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJv
YXJkU3RyYXRlZ3koKQogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRp
YVN0cmF0ZWd5IHsKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVm
PEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNr
JiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25l
ZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9E
ZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggZGY0YTFmNzg1MDRkYmUyMzBhOTc3ZTk3ZmQyNTlk
MjRlNGY5MjAzMS4uZTAzNDIzZDc1M2NiMTk4MGVlM2ViODg5MmZhMjg1MWVlNDk2MjUyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3RlYm9h
cmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRl
Z3koKQogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5
IHsKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2sm
IGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgUmVmPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNh
bXBsZVJhdGUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDRkNjNmNDBjZmVkNzcyYTU2YzI1NGMwNTMx
MDczMjVhMmQ5YWI2ZTMuLjc0NjE5ZGU0OGU2MTQxYWQ3ZDliZWQyNmMwMTY3ZjgxZTE1ZDliNGUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTgzOCw2
ICs4MzgsNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVm
ZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgW3ByZWZlcmVuY2VzIHNldEFzcGVjdFJhdGlvT2ZJ
bWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldENT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkOllFU107CisgICAgW3ByZWZl
cmVuY2VzIHNldEF1ZGlvV29ya2xldEVuYWJsZWQ6WUVTXTsKIH0KIAogLy8gQ2FsbGVkIGJlZm9y
ZSBlYWNoIHRlc3QuCkBAIC05MzEsNyArOTMyLDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBbcHJlZmVyZW5jZXMgc2V0V2ViQXVk
aW9FbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldE1vZGVyblVucHJlZml4ZWRXZWJB
dWRpb0VuYWJsZWQ6WUVTXTsKLSAgICBbcHJlZmVyZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxl
ZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRNZWRpYVNvdXJjZUVuYWJsZWQ6WUVTXTsKICAg
ICBbcHJlZmVyZW5jZXMgc2V0U291cmNlQnVmZmVyQ2hhbmdlVHlwZUVuYWJsZWQ6WUVTXTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CmluZGV4IDMxYWVjMzgyZTdiYTNh
M2FiZjlmMjcxMjJmYjg0ZTIwNTc4ODA3YzQuLjFkMDkxM2I0ZWYwNTlhNGUxZTc5MDZjNWViNDlk
ZWRiNjY0NjQ1OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3Mv
bWFpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKQEAg
LTcyLDcgKzcyLDcgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgIGV4aXRfY29k
ZSA9IGUuZXhpdF9jb2RlCiAgICAgICAgIHJldHVybiBleGl0X2NvZGUKIAotICAgIGRlZiBnZW5l
cmF0ZV9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeShzZWxmLCBpbnB1dF9kaXJlY3RvcnksIHN1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5
X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
LCBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgZGVm
IGdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwg
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVu
ZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9j
b25zdHJ1Y3RvcnNfZmlsZSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CiAgICAgICAgIGlkbF9maWxl
c19saXN0ID0gdGVtcGZpbGUubWtzdGVtcCgpCiAgICAgICAgIGZvciBpbnB1dF9maWxlIGluIG9z
Lmxpc3RkaXIoaW5wdXRfZGlyZWN0b3J5KToKICAgICAgICAgICAgIChuYW1lLCBleHRlbnNpb24p
ID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dF9maWxlKQpAQCAtOTgsNiArOTgsNyBAQCBjbGFzcyBC
aW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgJy0tc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZScsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwKICAgICAgICAgICAgICAgICctLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUnLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAg
ICAnLS1wYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUnLCBwYWludHdvcmts
ZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKKyAgICAgICAgICAgICAgICctLWF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIGF1ZGlvd29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAgICAgJy0tdGVzdEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZScsIHRlc3RnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAg
ICAgICAgICAgICAgICctLXZhbGlkYXRlQWdhaW5zdFBhcnNlciddCiAKQEAgLTIwMSw2ICsyMDIs
NyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwnCiAgICAgICAgIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZW5hbWUgPSAnV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKICAgICAgICAgcGFp
bnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCcKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbCcKICAgICAgICAgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
bmFtZSA9ICdCaW5kaW5nVGVzdEdsb2JhbENvbnN0cnVjdG9ycy5pZGwnCiAKICAgICAgICAgd29y
a19kaXJlY3RvcnkgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKQEAgLTIxMyw5ICsyMTUsMTAgQEAgY2xh
c3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0
cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJl
c2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCiAgICAgICAgIHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5y
ZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSA9IG9zLnBhdGguam9pbih3b3JrX2RpcmVjdG9yeSBpZiBub3Qgc2VsZi5y
ZXNldF9yZXN1bHRzIGVsc2UgaW5wdXRfZGlyZWN0b3J5LCBwYWludHdvcmtsZXRnbG9iYWxzY29w
ZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpCisgICAgICAgIGF1ZGlvd29ya2xldGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBz
ZWxmLnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIGF1ZGlvd29ya2xldGdsb2Jh
bHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSkKICAgICAgICAgdGVzdGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxm
LnJlc2V0X3Jlc3VsdHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHRlc3RnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50
YWxfZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2Zp
bGUsIHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1
Y3RvcnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRl
ZHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFs
c2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHRlc3RnbG9i
YWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6CisgICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfc3Vw
cGxlbWVudGFsX2RlcGVuZGVuY3koaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50YWxfZGVwZW5k
ZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxlLCB3aW5kb3df
Y29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBk
ZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2VydmljZXdvcmtl
cmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBh
dWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3Bl
X2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgICAgIHByaW50KCdGYWlsZWQgdG8gZ2VuZXJh
dGUgYSBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBmaWxlLicpCiAgICAgICAgICAgICBzaHV0aWwu
cm10cmVlKHdvcmtfZGlyZWN0b3J5KQogICAgICAgICAgICAgcmV0dXJuIC0xCkBAIC0yMzUsNiAr
MjM4LDggQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICBhbGxfdGVzdHNf
cGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hhbmdlcygn
Z2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCBwYWludHdvcmts
ZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIGFs
bF90ZXN0c19wYXNzZWQgPSBGYWxzZQorICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9j
aGFuZ2VzKCdnbG9iYWxzY29wZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIGF1
ZGlvd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CisgICAgICAgICAg
ICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBzZWxmLmRldGVj
dF9maWxlX2NoYW5nZXMoJ2dsb2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVj
dG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAg
ICAgICAgYWxsX3Rlc3RzX3Bhc3NlZCA9IEZhbHNlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410270</attachid>
            <date>2020-10-01 14:43:30 -0700</date>
            <delta_ts>2020-10-01 16:21:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217153-20201001144329.patch</filename>
            <type>text/plain</type>
            <size>167774</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzZTNkOGYwY2YwN2Jk
MzQ3YjUzNzVkNGQ1MzNmYjdmYjJiODQwNy4uYWY2ZmEyY2FiZjM4NGQ2MjI3NmEwMDBlYWMzNTE0
YTQzMWE2OTdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNyBAQAorMjAyMC0wOS0zMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgorCisgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0Ogor
ICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jYXVkaW93b3JrbGV0CisK
KyAgICAgICAgSW4gcGFydGljdWxhciwgdGhpcyBhZGRzIGEgcGFydGlhbCBidXQgc3BlYy1jb21w
bGlhbnQgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgV29ya2xldC5hZGRNb2R1bGUoKSwgYXMg
cGVyOgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy93b3JrbGV0cy8j
ZG9tLXdvcmtsZXQtYWRkbW9kdWxlCisKKyAgICAgICAgV2hlbiBXb3JrbGV0LmFkZE1vZHVsZSgp
IGlzIGNhbGxlZCwgd2UgY3JlYXRlIGEgQXVkaW9Xb3JrZXQgdGhyZWFkIGFuZAorICAgICAgICBh
IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHdpdGggaXRzIFZNLiBXZSB0aGVuIGFzayB0aGUgQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUKKyAgICAgICAgdG8gZmV0Y2ggYW5kIGludm9rZSB0aGUgd29y
a2xldCBzY3JpcHQuIE5vdGUgdGhhdCBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZQorICAgICAgICBk
b2VzIE5PVCBmZXRjaCBvciBpbnZva2UgdGhlIHdvcmtsZXQgc2NyaXB0IHlldCB0byByZWR1Y2Ug
cGF0Y2ggc2l6ZS4KKworICAgICAgICBDYWxsaW5nIFdvcmtsZXQuYWRkTW9kdWxlKCkgYWN0aXZh
dGVzIHRoZSBBdWRpb1dvcmtsZXQgYW5kIGNhdXNlcyBhdWRpbyByZW5kZXJpbmcKKyAgICAgICAg
dG8gb2NjdXIgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZC4KKworICAgICAgICBBIGZldyBpbXBv
cnRhbnQgdGhpbmdzIHRoYXQgYXJlIHN0aWxsIG1pc3NpbmcgaW4gdGhpcyBwYXRjaDoKKyAgICAg
ICAgLSBGZXRjaGluZyAmIGludm9raW5nIHdvcmtsZXQgc2NyaXB0cworICAgICAgICAtIFByZXR0
eSBtdWNoIGFsbCBBUEkgZXhwb3NlZCB0byBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZXMKKyAgICAg
ICAgLSBBdWRpb1dvcmtsZXRQcm9jZXNzb3Igc3VwcG9ydAorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gV2ViLWZhY2luZyBiZWhhdmlvciBjaGFuZ2UgeWV0LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxlcyB0byBw
cm9qZXRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0OjpBdWRpb1dvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9X
b3JrbGV0OjpjcmVhdGVHbG9iYWxTY29wZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3Jr
bGV0Ojpwcm94eSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXQuaDoKKyAgICAgICAgV2hlbiB0aGUgV29ya2xldCBuZWVkcyB0byBjcmVhdGUgYSBHbG9iYWxT
Y29wZSwgQXVkaW9Xb3JrbGV0IHRha2VzIGNhcmUgb2YgY3JlYXRpbmcgYSBBdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eS4KKyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5IHN0
YXJ0cyB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLCB3aGljaCBjcmVhdGVzIHRoZSBBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS4KKyAgICAgICAgQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgdGFrZXMg
Y2FyZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4gdGhyZWFkIHRvIHRoZSBBdWRpb1dv
cmtsZXRUaHJlYWQgYXMgd2VsbC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOiBBZGRlZC4KKyAgICAgICAgQWRkIGJh
c2ljIGltcGxlbWVudGF0aW9uIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZToKKyAgICAgICAg
LSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI2F1ZGlvd29ya2xldGdsb2JhbHNjb3Bl
CisgICAgICAgIE5vbmUgb2YgdGhlIFdlYiBBUEkgaXMgZXhwb3NlZCBvbiB0aGUgQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGUgeWV0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRNZXNzYWdpbmdQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcg
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkgY2xhc3MgKFNpbWlsYXIgdG8gV29ya2VyTWVzc2Fn
aW5nUHJveHkpIHdoaWNoIHN0YXJ0cyB0byBBdWRpb1dvcmtsZXRUaHJlYWQKKyAgICAgICAgKHdo
aWNoIGNvbnN0cnVjdHMgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIG9uIHRoYXQgdGhyZWFk
KSBhbmQgdGFrZXMgY2FyZSBvZiBwb3N0aW5nIHRhc2tzIGZyb20gdGhlIG1haW4KKyAgICAgICAg
dGhyZWFkIHRvIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldFRocmVhZC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmg6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGNs
YXNzIHdoaWNoIHdyYXBzIHRoZSBBdWRpb1RocmVhZCB1c2VkIGJ5IEF1ZGlvV29ya2V0cy4KKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAg
UGFzcyBkb2N1bWVudCB3aGVuIGNvbnN0cnVjdGluZyB0aGUgQXVkaW9Xb3JrbGV0IHNpbmNlIGl0
IGlzIG5vdyBhbiBBY3RpdmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZh
dWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlOjpzdGFydFJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OnNldENoYW5uZWxDb3VudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgSWYgQXVkaW9Xb3Jr
bGV0IGlzIGFjdGl2ZSwgcGFzcyBhIGZ1bmN0aW9uIHRvIEF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KCkgdGhhdCBkaXNwYXRjaGVzIHRvIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRUaHJlYWQsIHNv
IHRoYXQgdGhlIEF1ZGlvRGVzdGluYXRpb24gY2FuIGRvIHJlbmRlcmluZyBvbiB0aGUgQXVkaW9X
b3JrbGV0VGhlYWQgaW5zdGVhZAorICAgICAgICBvZiB0aGUgZGV2aWNlJ3MgcmVuZGVyaW5nIHRo
cmVhZC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAgICBJZiBBdWRpb1dvcmtsZXQgaXMgYWN0aXZlLCB1
c2UgdGhlIEF1ZGlvV29ya2xldCdzIEF1ZGlvV29ya2xldFRocmVhZCBpbnN0ZWFkIG9mIGEgbmV3
IGF1ZGlvIHRocmVhZAorICAgICAgICB0byBkbyB0aGUgb2ZmbGluZSByZW5kZXJpbmcuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIEFkZCBB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZSBzaW5jZSBpdCBpcyBleHBvc2VkIGNvbmRpdGlvbmFsbHkg
YXQgcnVudGltZSB0byBBdWRpb1dvcmtldHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpK
U1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oOgorICAgICAgICBBZGQgY29kZSB0byBzdXBwb3J0IEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
IGFzIGEgR2xvYmFsU2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICBXZSBub3cgc3ViY2xhc3Mg
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciBpbnRlcmZhY2UuIFRoaXMgYWxsb3dzIFdv
cmtsZXRTY3JpcHRDb250cm9sbGVyCisgICAgICAgIHRvIHJldXNlIFdvcmtlclJ1bkxvb3AuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGw6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb1dv
cmtsZXRHbG9iYWxTY29wZSBhcyBnbG9iYWwgc2NvcGUgaW4gb3VyIEpTIGJpbmRpbmdzLgorCisg
ICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWludFdvcmtsZXQ6OmFkZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXQ6
OmNyZWF0ZUdsb2JhbFNjb3Blcyk6CisgICAgICAgICogY3NzL0RPTUNTU1BhaW50V29ya2xldC5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6ZW5zdXJlUGFpbnRXb3JrbGV0KToKKyAgICAgICAgVXBkYXRlIFBhaW50V29ya2xldCBjb2Rl
IHNvIHRoYXQgaXQga2VlcHMgYnVpbGRpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgor
ICAgICAgICBNYWtlIEF1ZGlvRGVzdGluYXRpb24gVGhyZWFkU2FmZVJlZkNvdW50ZWQgc28gdGhh
dCBpdCBjYW4ga2VlcCBpdHNlbGYgYWxpdmUKKyAgICAgICAgd2hlbiBkaXNwYXRjaGluZyB0byB0
aGUgQXVkaW9Xb3JrbGV0VGhyZWFkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
c2V0SXNQbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVy
T25SZW5kZXJpbmdUaGVhZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmg6CisgICAgICAgIFdoZW4gd2UgZ2V0IGEgcmVxdWVzdCB0byByZW5k
ZXIgYXVkaW8sIHdlIG5vdyB1c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5CisgICAgICAgIHRo
ZSBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUgdG8gZGlzcGF0Y2ggdG8gdGhlIEF1ZGlvV29y
a2xldFRocmVhZCB3aGVuCisgICAgICAgIG5lZWRlZCAoQXVkaW9Xb3JrbGV0IGlzIGFjdGl2ZSkg
YmVmb3JlIGRvaW5nIHRoZSByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oOgorICAgICAgICBVcGRhdGUgY29k
ZSBzbyB0aGF0IGl0IGtlZXBzIGJ1aWxkaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6dW5k
ZXJseWluZ1RocmVhZCBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oOgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aDogQWRkZWQuCisgICAgICAgIEFkZCBuZXcgaW50ZXJmYWNlcyB0aGF0IGFyZSBzdWJjbGFzc2Vk
IGJ5IFdvcmtlciBhbmQgV29ya2xldCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjbGFzc2VzIGlu
IG9yZGVyIHRvIHByb21vdGUgY29kZSBzaGFyaW5nLgorCisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuaDoKKyAgICAg
ICAgVXBkYXRlIFdvcmtlclJ1bkxvb3AgdG8gdXNlIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
IHNvIHRoYXQgaXQgY2FuIGJlCisgICAgICAgIHJldXNlZCBieSBBdWRpb1dvcmtsZXRUaHJlYWQu
CisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtsZXQ6OldvcmtsZXQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6ZG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldDo6YWRkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtsZXQ6OmZpbmlzaFBlbmRpbmdUYXNrcyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0
OjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0Ojpwcm94aWVzIGNvbnN0KToKKyAgICAgICAg
KiB3b3JrbGV0cy9Xb3JrbGV0LmlkbDoKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIGFkZE1vZHVsZSgpOgorICAgICAgICAtIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5p
Lm9yZy93b3JrbGV0cy8jZG9tLXdvcmtsZXQtYWRkbW9kdWxlCisgICAgICAgIE1ha2UgV29ya2xl
dCBhbiBBY3RpdmVET01PYmplY3Qgc2luY2UgaXQgbmVlZHMgdG8gcmVzb2x2ZSBhIEpTIHByb21p
c2UgYXN5bmNocm9ub3VzbHkuCisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpXb3JrbGV0R2xv
YmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpldmFsdWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZv
a2VTY3JpcHQpOgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjppc0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlIGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsOgor
ICAgICAgICBVcGRhdGUgV29ya2xldEdsb2JhbFNjb3BlIHNvIHRoYXQgaXQgY2FuIGJlIHN1YmNs
YXNzZWQgYnkgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgYW5kIG5vdAorICAgICAgICBiZSBQYWlu
dFdvcmtsZXQtc3BlY2lmaWMuCisKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGVQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5IGlu
dGVyZmFjZSB0byBpbnRlcmFjdCB3aXRoIHRoZSBXb3JrbGV0R2xvYmFsU2NvcGUgaW50ZXJmYWNl
LgorICAgICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHBvc3QgdGFza3MgdG8g
dGhlIFdvcmtsZXRHbG9iYWxTY29wZSwgYWJzdHJhY3RpbmcgYXdheQorICAgICAgICBwb3RlbnRp
YWwgdGhyZWFkaW5nIGNvbXBsZXhpdHkuIE5vdGUgdGhhdCBBdWRpb1dvcmtldHMgdXNlIHRocmVh
ZGluZyB3aGlsZSBQYWludFdvcmtsZXRzCisgICAgICAgIGRvIG5vdC4KKworICAgICAgICAqIHdv
cmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFza3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldvcmtsZXRQZW5kaW5nVGFza3M6OldvcmtsZXRQZW5kaW5nVGFza3MpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldFBlbmRpbmdUYXNrczo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2xldFBlbmRpbmdUYXNrczo6ZGVjcmVtZW50Q291bnRlcik6CisgICAgICAgICogd29ya2xldHMv
V29ya2xldFBlbmRpbmdUYXNrcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRQ
ZW5kaW5nVGFza3M6OmNyZWF0ZSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3I6Cisg
ICAgICAgIC0gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL3dvcmtsZXRzLyNwZW5kaW5n
LXRhc2tzLXN0cnVjdAorICAgICAgICBXaGlsZSBpdCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkIHJp
Z2h0IGZvciBBdWRpb1dvcmtsZXQgKGJlY2F1c2UgdGhlcmUgaXMgYWx3YXlzIGEgc2luZ2xlCisg
ICAgICAgIFdvcmtsZXRHbG9iYWxTY29wZSksIGl0IHdpbGwgYmUgbmVlZGVkIG9uY2Ugd2UgaGF2
ZSBwcm9wZXIgc3VwcG9ydCBmb3IgUGFpbnRXb3JrbGV0cy4KKyAgICAgICAgUGFpbnRXb3JrbGV0
cyBjYW4gaGF2ZSBzZXZlcmFsIFdvcmtsZXRHbG9iYWxTY29wZXMuIEluIHRoZSBtZWFuIHRpbWUs
IGl0IGFsbG93cyB1cyB0bworICAgICAgICBoYXZlIGNvZGUgdGhhdCBtYXRjaGVzIHRoZSBzcGVj
aWZpY2F0aW9uIHRleHQgbW9yZSBjbG9zZWx5LgorCisgICAgICAgICogd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZWxlYXNlSGVhcEFjY2Vzcyk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWNxdWlyZUhlYXBBY2Nlc3MpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmFkZFRpbWVyU2V0Tm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZW1vdmVU
aW1lclNldE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbiBjb25zdCk6
CisgICAgICAgICogd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
VXBkYXRlIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkg
QXVkaW9Xb3JrbGV0cyBhbmQgbm90IGp1c3QKKyAgICAgICAgUGFpbnRXb3JrbGV0cy4KKwogMjAy
MC0xMC0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuIEFkZCBtaXNzaW5nIGd1YXJkIGFyb3VuZCBNb2Rlcm5QYXRoIHVz
YWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA4NTM1ODdjMGYxNzVlYzk2ODhmMWU1N2NlYjc3MDgxNGNkOGQ3Y2Zj
Li5lYWQ0NmY5YWRlYTJkMjI3OWEzMGI2ZTkyZWIxNzRiNzkxNWM4OTFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDIwLTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE1MworCisg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgVXBkYXRlIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eSB0byBtYXRjaCB3aGF0IHdhcyBkb25lIGluIEF1ZGlvRGVzdGlu
YXRpb25Db2NvYS4KKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IGlzIHVzZWQg
d2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgZW5hYmxlZC4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpzdGFydCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMTAtMDEg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhUmVjb3Jk
ZXIgc2hvdWxkIHN1cHBvcnQgTWVkaWFSZWNvcmRlck9wdGlvbnMubWltZVR5cGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCAxN2RhZGZlNTAxZDBlMmY1NDU0ZDRhOGZlZDYyZmFjNmQ5
MDFmODNiLi5hNmJmYzgyZDg1NjVkNTQ5MjhhMzk4MTFiNzk1ZTNkNDE4NWQwYzNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDktMzAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1
Y3R1cmUgZm9yIEF1ZGlvV29ya2xldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwog
MjAyMC0wOS0yOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1By
ZWZlcmVuY2VzXSBBZG9wdCBzaGFyZWQgcHJlZmVyZW5jZXMgY29uZmlndXJhdGlvbiBhbmQgc2Ny
aXB0IGluIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDJjNTMzNzNkNjEx
ZWU1MzQzYjcxMTdkMGY3OGM2MjU0ZTA3NmU1NTMuLjhhMTVmMjU2MzVhOWExNGQ4ZTIwZWRkZWZl
N2YxZDFhY2I0YmIwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0wOS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9Xb3JrbGV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wOS0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdhY3kgc2hvdWxkIGNhbGwgUGFn
ZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZGZj
ZWJmMjQ0NWE2YzRhNWU5NjM0ODVlNDYzNTU0NmY3NmNmOTBlLi4xOTQzODAyM2M0MzU4YjA2MDYx
MDNjNjVjNDdkNTg5ZjdlZTVjMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDc0LDYgKzQ3
NCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1RpbWVzdGFtcC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5pZGwKKyAg
ICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5pZGwKQEAgLTE3NjYsNiArMTc2Nyw3IEBAIHNldChERURJQ0FURURXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
CiBzZXQoU0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7V2ViQ29y
ZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsKQogc2V0KFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bCkKIHNldChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnMuaWRsKQorc2V0KEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9ycy5pZGwpCiAKIHNldChXZWJDb3JlX0lOVEVSRkFDRV9MSUJSQVJJRVMgV2ViQ29yZSkK
IHNldChXZWJDb3JlX0lOVEVSRkFDRV9JTkNMVURFX0RJUkVDVE9SSUVTICR7V2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0pCkBAIC0xOTUxLDcgKzE5NTMsOCBAQCBHRU5FUkFU
RV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05T
VFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlICR7U0VSVklDRVdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQog
ICAgICAgICAtLXdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLTEVUR0xP
QkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9Ci0gICAgICAgIC0tcGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7UEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEV9KQorICAgICAgICAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSAke1BBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfQorICAgICAg
ICAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAke0FVRElPV09SS0xF
VEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFfSkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVQ
RU5ERU5DSUVTIFdlYkNvcmVCaW5kaW5ncykKIAogaWYgKEVOQUJMRV9XRUJJTlNQRUNUT1JVSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IDRmYzA1NDRmOWNkOTc2MWFlMDFkY2I2NTE0OGMzNGEzODJiZWFiZDkuLmE4ZGNmOTY5ODJhNDA4
Mjk5NzQ1ODI1ODM0YjcxNjBiNDVkMjdmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDYgKzMzMCw3IEBAICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsCiskKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNDQyMTYwNDY3
ZGUxNjVlNzVkNTQ0OTc1MGZkZGExM2NlZGM3NDY4MC4uMzY3OTVlYTQxMzM4ZWRkYTg0YWQyODM0
ZjY4OGRlZDMyMDRkZTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEsNCArMSw1IEBACiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0
ZWQgYnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNjcmlwdC4KKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
Qnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmgKQEAg
LTIwNyw2ICsyMDgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291cmNlLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmts
ZXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXROb2RlLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1dvcmtsZXRO
b2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVk
aW9Xb3JrbGV0Tm9kZU9wdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBkYjFkNmFhNDY0YTNhMjAxNDg1OTYxZWY3MTE1MzYxNTdlM2YwYWI2Li4yYzFjMTA4OWFkNWFi
NmI3NTlmNTA2ZGMxYWU5MDNjZmYyMDYwNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTQwNyw2ICs0MDcsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCkBAIC0x
NzQ4LDYgKzE3NDksNyBAQCBERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSA9IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydQogU0VSVklDRVdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmlkbAogV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbAogUEFJTlRXT1JLTEVUR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5p
ZGwKK0FVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFID0gQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsCiBJRExfRklMRVNfVE1QID0gaWRsX2ZpbGVz
LnRtcAogSURMX0FUVFJJQlVURVNfRklMRSA9ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9J
RExBdHRyaWJ1dGVzLmpzb24KIApAQCAtMTc2OCwxMyArMTc3MCwxNCBAQCBJRExfSU5URVJNRURJ
QVRFX0ZJTEVTID0gXAogICAgICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIFwKICAgICAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSkgXAogICAgICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCi0g
ICAgJChQQUlOVFdPUktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKKyAgICAkKFBB
SU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCisgICAgJChBVURJT1dP
UktMRVRHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkKICMKIElETF9JTlRFUk1FRElBVEVf
UEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKElETF9JTlRFUk1FRElBVEVfRklMRVMpKQogCiAkKElE
TF9JTlRFUk1FRElBVEVfUEFUVEVSTlMpIDogJChQUkVQUk9DRVNTX0lETFNfU0NSSVBUUykgJChJ
RExfQVRUUklCVVRFU19GSUxFKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFU
Rk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9B
TkRfUExBVEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKIAkkKGZvcmVhY2ggZiwkKEpTX0JJTkRJ
TkdfSURMUyksQGVjaG8gJChmKT4+JChJRExfRklMRVNfVE1QKSQoTkwpKQotCSQoUEVSTCkgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQo
RkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxG
aWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9B
VFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5U
QUxfREVQRU5ERU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BB
Q0VTX0hFQURFUl9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RS
VUNUT1JTX0ZJTEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNU
T1JTX0ZJTEUpIC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNF
UlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19G
SUxFKSAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09S
S0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxl
RGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9B
TkRfUExBVEZPUk1fREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNM
aXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVT
X0ZJTEUpIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5E
RU5DWV9GSUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURF
Ul9GSUxFKSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJ
TEUpIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NP
UEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IC0tc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JL
RVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JB
TFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLWF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzRmlsZSAkKEFVRElPV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAt
LXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtFRklMRV9ERVBTKQog
CSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmggOiAlLmlkbCAkKEpT
X0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJRExfSU5URVJNRURJ
QVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5jcHAKaW5k
ZXggYTk5NGEyNGZhMWYzODFkMjkwY2RjOTA2Y2NiMWU4NzEwY2NlYmVmYy4uZmNiOTlhNjc2ZmJh
NTI3ZmNjNTE0Y2QxODUyYzI2YzQ1ZTBiMWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcApAQCAtMzEsMTUgKzMxLDM0IEBACiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKICNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKIAorI2luY2x1ZGUg
IkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPEF1ZGlvV29ya2xldD4gQXVkaW9Xb3JrbGV0OjpjcmVhdGUoKQorUmVmPEF1ZGlvV29ya2xl
dD4gQXVkaW9Xb3JrbGV0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8g
d29ya2xldCA9IGFkb3B0UmVmKCpuZXcgQXVkaW9Xb3JrbGV0KGRvY3VtZW50KSk7CisgICAgd29y
a2xldC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHdvcmtsZXQ7Cit9CisKK0F1ZGlv
V29ya2xldDo6QXVkaW9Xb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IFdvcmtsZXQo
ZG9jdW1lbnQpCit7Cit9CisKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJveHk+PiBB
dWRpb1dvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXVkaW9Xb3JrbGV0KTsKKyAgICAvLyBXZWJBdWRpbyB1c2VzIGEgc2luZ2xlIGdsb2Jh
bCBzY29wZS4KKyAgICByZXR1cm4geyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6Y3JlYXRl
KCp0aGlzKSB9OwogfQogCi1BdWRpb1dvcmtsZXQ6OkF1ZGlvV29ya2xldCgpCitBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eSogQXVkaW9Xb3JrbGV0Ojpwcm94eSgpIGNvbnN0CiB7CisgICAgYXV0
byYgcHJveGllcyA9IHRoaXMtPnByb3hpZXMoKTsKKyAgICBpZiAocHJveGllcy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eT4ocHJveGllcy5maXJzdCgpLnB0cigpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmgKaW5kZXggNTUxMTVlMzEyYTk2ZGZjOGI1M2RiYzcwYjA5NDA1NmIxMzI5NjZkYi4u
ODAzZmJiNzRkOWQ2MDNlMzY0ZGQ0M2Y2OGJmODU0OTE0MTI5ODdlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldC5oCkBAIC0zMywxMiArMzMsMTkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb1dvcmtsZXQgOiBwdWJsaWMg
V29ya2xldCB7CitjbGFzcyBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTsKKworY2xhc3MgQXVk
aW9Xb3JrbGV0IGZpbmFsIDogcHVibGljIFdvcmtsZXQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8QXVkaW9Xb3JrbGV0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvV29ya2xldD4g
Y3JlYXRlKERvY3VtZW50Jik7CisKKyAgICBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSogcHJv
eHkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1dvcmtsZXQoKTsKKyAgICBleHBsaWNp
dCBBdWRpb1dvcmtsZXQoRG9jdW1lbnQmKTsKKworICAgIC8vIFdvcmtsZXQuCisgICAgVmVjdG9y
PFJlZjxXb3JrbGV0R2xvYmFsU2NvcGVQcm94eT4+IGNyZWF0ZUdsb2JhbFNjb3BlcygpIGZpbmFs
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kN2ZhZGI3ZTAxZWQzZDcxZWQ1NDJlNzA2Yjk5NDBjYTk2MjE3ZTZkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCisKKyNpbmNs
dWRlICJBdWRpb1dvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSk7CisKK0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRocmVhZCwgY29uc3Qg
V29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgOiBXb3JrbGV0R2xvYmFsU2NvcGUo
cGFyYW1ldGVycykKKyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKK30KKworQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6On5BdWRpb1dvcmtsZXRH
bG9iYWxTY29wZSgpID0gZGVmYXVsdDsKKworVGhyZWFkKiBBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZTo6dW5kZXJseWluZ1RocmVhZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGhyZWFkLT50aHJl
YWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTViZmE0Y2VjNmFmZGJmMmYz
MmNlMzk2YTdkYmQyMzNhZjkxNzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxT
Y29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvV29ya2xldFRocmVh
ZDsKKworc3RydWN0IFdvcmtsZXRQYXJhbWV0ZXJzOworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9i
YWxTY29wZSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpOworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+IGNyZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmIHRo
cmVhZCwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSh0aHJlYWQsIHBh
cmFtZXRlcnMpKTsKKyAgICB9CisgICAgfkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCk7CisKKyAg
ICBUaHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAg
ICBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3Jr
bGV0UGFyYW1ldGVycyYpOworCisgICAgYm9vbCBpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgUmVmPEF1ZGlvV29ya2xldFRocmVh
ZD4gbV90aHJlYWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpCitzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCkgeyByZXR1cm4gaXM8V2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAm
JiBkb3duY2FzdDxXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLmlzQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGUoKTsgfQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6
OldvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdmMzJmYzhlYWEyZjg0YjM2NjU1YTliZTAxMTcwZWZhNTBmZDVjMmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNj
b3BlLmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBFeHBvc2VkPUF1ZGlvV29ya2xldCwKKyAgICBDb25kaXRp
b25hbD1XRUJfQVVESU8sCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIEltcGxp
Y2l0VGhpcywKKyAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCwKKyAgICBJc0lt
bXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdE9uUHJvdG90eXBlLAorICAgIEdsb2JhbD0oV29y
a2xldCxBdWRpb1dvcmtsZXQpLAorXSBpbnRlcmZhY2UgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUg
OiBXb3JrbGV0R2xvYmFsU2NvcGUgeworICAgIC8vIEltcGxlbWVudCBBUEkuCit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dE1lc3NhZ2luZ1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTZjMGUzMjA3YjYzOWY3ODM2YjBlY2I5
YTE1MjUxMjdhZmQ2N2NmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJBdWRpb1dvcmts
ZXRNZXNzYWdpbmdQcm94eS5oIgorCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVk
ZSAiQXVkaW9Xb3JrbGV0VGhyZWFkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2xldFBhcmFt
ZXRlcnMuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVuZGluZ1Rhc2tzLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RhdGljIFdvcmtsZXRQYXJhbWV0ZXJzIGdlbmVyYXRlV29ya2xldFBhcmFt
ZXRlcnMoQXVkaW9Xb3JrbGV0JiB3b3JrbGV0KQoreworICAgIGF1dG8qIGRvY3VtZW50ID0gd29y
a2xldC5kb2N1bWVudCgpOworICAgIGF1dG8ganNSdW50aW1lRmxhZ3MgPSBkb2N1bWVudC0+c2V0
dGluZ3MoKS5qYXZhU2NyaXB0UnVudGltZUZsYWdzKCk7CisKKyAgICByZXR1cm4geworICAgICAg
ICBkb2N1bWVudC0+dXJsKCksCisgICAgICAgIGpzUnVudGltZUZsYWdzCisgICAgfTsKK30KKwor
QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHk6OkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KEF1
ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICA6IG1fd29ya2xldFRocmVhZChBdWRpb1dvcmtsZXRU
aHJlYWQ6OmNyZWF0ZShnZW5lcmF0ZVdvcmtsZXRQYXJhbWV0ZXJzKHdvcmtsZXQpKSkKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgbV93b3JrbGV0VGhyZWFkLT5zdGFydCgp
OworfQorCitBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6fkF1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5KCkgPSBkZWZhdWx0OworCitib29sIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5Ojpw
b3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrJiYgdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQoreworICAgIG1fd29ya2xldFRocmVh
ZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShXVEZNb3ZlKHRhc2spLCBtb2RlKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWZmNDEw
ZjUyODI2MGZlYzAxYjNkYzE5N2JjYzkwMmUxNmNmM2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5o
CkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUg
IldvcmtsZXRHbG9iYWxTY29wZVByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQXVkaW9Xb3JrbGV0OworY2xhc3MgQXVkaW9Xb3JrbGV0VGhyZWFkOworCitjbGFzcyBBdWRp
b1dvcmtsZXRNZXNzYWdpbmdQcm94eSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eT4gY3Jl
YXRlKEF1ZGlvV29ya2xldCYgd29ya2xldCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5KHdvcmtsZXQpKTsKKyAgICB9CisKKyAg
ICB+QXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoKTsKKworICAgIC8vIFRoaXMgbWV0aG9kIGlz
IHVzZWQgaW4gdGhlIG1haW4gdGhyZWFkIHRvIHBvc3QgdGFzayBiYWNrIHRvIHRoZSB3b3JrbGV0
IHRocmVhZC4KKyAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsK
KworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eShBdWRp
b1dvcmtsZXQmKTsKKworICAgIGJvb2wgaXNBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJlZjxBdWRpb1dvcmtsZXRUaHJlYWQ+
IG1fd29ya2xldFRocmVhZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94
eSkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eSYgcHJveHkpIHsgcmV0dXJuIHByb3h5LmlzQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHko
KTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0VGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjRlNjY0NjRlNTZkMzRjZWMyMDdjMmJi
ZGEwNGYyMWRhNGIyZWYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0VGhy
ZWFkLmgiCisKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJGbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuaCIK
KyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgor
I2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQXVkaW9Xb3JrbGV0VGhyZWFkOjpBdWRp
b1dvcmtsZXRUaHJlYWQoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAg
OiBtX3BhcmFtZXRlcnMocGFyYW1ldGVycy5pc29sYXRlZENvcHkoKSkKK3sKK30KKwordm9pZCBB
dWRpb1dvcmtsZXRUaHJlYWQ6OnN0YXJ0KCkKK3sKKyAgICBhdXRvIGxvY2sgPSBob2xkTG9jayht
X3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAgICBSZWY8VGhy
ZWFkPiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTogQXVkaW9Xb3JrbGV0IiwgW3Ro
aXNdIHsKKyAgICAgICAgd29ya2xldFRocmVhZCgpOworICAgIH0sIFRocmVhZFR5cGU6OkF1ZGlv
KTsKKyAgICAvLyBGb3JjZSB0aGUgVGhyZWFkIG9iamVjdCB0byBiZSBpbml0aWFsaXplZCBmdWxs
eSBiZWZvcmUgc3RvcmluZyBpdCB0byBtX3RocmVhZCAoYW5kIGJlY29taW5nIHZpc2libGUgdG8g
b3RoZXIgdGhyZWFkcykuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKKyAgICBtX3RocmVh
ZCA9IFdURk1vdmUodGhyZWFkKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXRUaHJlYWQ6Ondvcmts
ZXRUaHJlYWQoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwor
CisgICAgLy8gUHJvcGFnYXRlIHRoZSBtYWluVGhyZWFkJ3MgZmVudiB0byB3b3JrZXJzLgorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgRmxvYXRpbmdQb2ludEVudmlyb25tZW50OjpzaW5n
bGV0b24oKS5wcm9wYWdhdGVNYWluVGhyZWFkRW52aXJvbm1lbnQoKTsKKyNlbmRpZgorCisjaWYg
VVNFKEdMSUIpCisgICAgR1JlZlB0cjxHTWFpbkNvbnRleHQ+IG1haW5Db250ZXh0ID0gYWRvcHRH
UmVmKGdfbWFpbl9jb250ZXh0X25ldygpKTsKKyAgICBnX21haW5fY29udGV4dF9wdXNoX3RocmVh
ZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNlbmRpZgorCisgICAgV29ya2xldFNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXI7CisgICAgeworICAgICAgICBhdXRvIGxvY2sg
PSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7Cisg
ICAgICAgIG1fd29ya2xldEdsb2JhbFNjb3BlID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNy
ZWF0ZSgqdGhpcywgbV9wYXJhbWV0ZXJzKTsKKworICAgICAgICBzY3JpcHRDb250cm9sbGVyID0g
bV93b3JrbGV0R2xvYmFsU2NvcGUtPnNjcmlwdCgpOworCisgICAgICAgIGlmIChtX3J1bkxvb3Au
dGVybWluYXRlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVk
IGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0byBydW4uIFNpbmNlIHRoZSBjb250ZXh0
IGRpZG4ndCBleGlzdCB5ZXQsCisgICAgICAgICAgICAvLyBmb3JiaWRFeGVjdXRpb24oKSBjb3Vs
ZG4ndCBiZSBjYWxsZWQgZnJvbSBzdG9wKCkuCisgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVy
LT5zY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAgICAgICAgICBzY3JpcHRDb250
cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJ1bkV2
ZW50TG9vcCgpOworCisjaWYgVVNFKEdMSUIpCisgICAgZ19tYWluX2NvbnRleHRfcG9wX3RocmVh
ZF9kZWZhdWx0KG1haW5Db250ZXh0LmdldCgpKTsKKyNlbmRpZgorCisgICAgUmVmUHRyPFRocmVh
ZD4gcHJvdGVjdG9yID0gbV90aHJlYWQ7CisKKyAgICBBU1NFUlQobV93b3JrbGV0R2xvYmFsU2Nv
cGUtPmhhc09uZVJlZigpKTsKKworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4g
d29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGU7CisgICAgeworICAgICAgICAvLyBNdXRleCBwcm90
ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBjaGFuZ2UgbV93b3Jr
ZXJHbG9iYWxTY29wZQorICAgICAgICAvLyB3aGlsZSBXb3JrZXJUaHJlYWQ6OnN0b3AgaXMgYWNj
ZXNzaW5nIGl0LgorICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX3RocmVhZENyZWF0aW9u
QW5kV29ya2xldEdsb2JhbFNjb3BlTG9jayk7CisKKyAgICAgICAgLy8gRGVsYXkgdGhlIGRlc3Ry
dWN0aW9uIG9mIHRoZSBXb3JrZXJHbG9iYWxTY29wZSBjb250ZXh0IHVudGlsIGFmdGVyIHdlJ3Zl
IHVubG9ja2VkIHRoZQorICAgICAgICAvLyBtX3RocmVhZENyZWF0aW9uQW5kV29ya2VyR2xvYmFs
U2NvcGVNdXRleC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBkZXN0cnVjdGluZyB0aGUKKyAgICAg
ICAgLy8gY29udGV4dCB3aWxsIHRyaWdnZXIgdGhlIG1haW4gdGhyZWFkIHRvIHJhY2UgYWdhaW5z
dCB1cyB0byBkZWxldGUgdGhlIFdvcmtlclRocmVhZAorICAgICAgICAvLyBvYmplY3QsIGFuZCB0
aGUgV29ya2VyVGhyZWFkIG9iamVjdCBvd25zIHRoZSBtdXRleCB3ZSBuZWVkIHRvIHVubG9jayBh
ZnRlciB0aGlzLgorICAgICAgICB3b3JrbGV0R2xvYmFsU2NvcGVUb0RlbGV0ZSA9IFdURk1vdmUo
bV93b3JrbGV0R2xvYmFsU2NvcGUpOworICAgIH0KKworICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25t
ZW50IHdpbGwgZGVzdHJveSB0aGUgY29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBt
ZXNzYWdpbmcgcHJveHkuCisgICAgLy8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZl
IHBhc3QgdGhyZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9y
IG90aGVyd2lzZSBkZXN0cm95IHRoZW0uCisgICAgd29ya2xldEdsb2JhbFNjb3BlVG9EZWxldGUg
PSBudWxscHRyOworCisgICAgLy8gU2VuZCB0aGUgbGFzdCBXb3JrZXJUaHJlYWQgUmVmIHRvIGJl
IERlcmVmJ2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0geyB9KTsKKworICAgIC8vIFRoZSB0
aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJlYWR5IGRlc3Ryb3llZCBmcm9tIG5vdGlmaWNhdGlvbiBu
b3csIGRvbid0IHRyeSB0byBhY2Nlc3MgInRoaXMiLgorICAgIHByb3RlY3Rvci0+ZGV0YWNoKCk7
Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0VGhyZWFkOjpydW5FdmVudExvb3AoKQoreworICAgIC8v
IERvZXMgbm90IHJldHVybiB1bnRpbCB0ZXJtaW5hdGVkLgorICAgIG1fcnVuTG9vcC5ydW4obV93
b3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIzZjZhODUy
MzZjMTg3ODc2NDcyNmM2YjYzYmRiMDA0YTQzMTk0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0VGhyZWFkLmgKQEAgLTAsMCAr
MSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiV29ya2VyUnVu
TG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTsKKworY2xhc3MgQXVkaW9X
b3JrbGV0VGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvV29ya2xldFRo
cmVhZD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QXVkaW9Xb3JrbGV0VGhyZWFkPiBjcmVh
dGUoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXRUaHJlYWQocGFyYW1ldGVycykpOworICAg
IH0KKworICAgIHZvaWQgc3RhcnQoKTsKKworICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7
IHJldHVybiBtX3J1bkxvb3A7IH0KKyAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGhyZWFkLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0
VGhyZWFkKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJik7CisKKyAgICB2b2lkIHJ1bkV2ZW50TG9v
cCgpOworICAgIHZvaWQgd29ya2xldFRocmVhZCgpOworCisgICAgUmVmUHRyPFRocmVhZD4gbV90
aHJlYWQ7CisgICAgV29ya2VyUnVuTG9vcCBtX3J1bkxvb3A7CisgICAgV29ya2xldFBhcmFtZXRl
cnMgbV9wYXJhbWV0ZXJzOworICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gbV93
b3JrbGV0R2xvYmFsU2NvcGU7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uQW5kV29ya2xldEds
b2JhbFNjb3BlTG9jazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAwMmI1ZmEwNGZlZGQ5M2VlOWMzYTJkOTUz
MDMwN2QyMTA5NDRmM2U2Li5jZGMwM2NmYWM0ZDg3N2E3MGVjNTNlYWI4YmE5M2NjMzc1NjA4N2Qx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVk
aW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwog
ICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIo
dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVkaW9Xb3Jr
bGV0OjpjcmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0ZShkb2N1
bWVudCkpCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRl
KFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLCAqdGhpcykpCiB7
CiAgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMgQXVkaW9Db250ZXh0IG11c3QgZGllIG9ubHkgYWZ0
ZXIgcGFnZSBuYXZpZ2F0ZS4KQEAgLTE2MSw3ICsxNjEsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpC
YXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFu
bmVscwogICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50
aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0gICAgLCBtX3dvcmtsZXQoQXVk
aW9Xb3JrbGV0OjpjcmVhdGUoKSkKKyAgICAsIG1fd29ya2xldChBdWRpb1dvcmtsZXQ6OmNyZWF0
ZShkb2N1bWVudCkpCiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVk
aWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKICAgICAsIG1fcmVuZGVyVGFyZ2V0
KFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRl
eCA3NTFkZTkxOGNlMWRjMzZhMWM3OWU5NTAzYzkyOGY0Zjg5ZjA5NmJjLi5hZTM0ZmZiYTIzY2Rh
MTZjZDlhYTc0NjBlN2E4NzJlNzk4MjEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCkBAIC0zMCwxMCArMzAsMTMgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKKyNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKKyNp
bmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldv
cmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTk5LDE4ICsxMDIsMzAgQEAgdm9pZCBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KGNvbnN0IFN0cmluZyYgaW5wdXREZXZp
Y2VJZCkKICAgICAgICAgICAgIC8vIFJlLWNyZWF0ZSBkZXN0aW5hdGlvbi4KICAgICAgICAgICAg
IG1fZGVzdGluYXRpb24tPnN0b3AoKTsKICAgICAgICAgICAgIGNyZWF0ZURlc3RpbmF0aW9uKCk7
Ci0gICAgICAgICAgICBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOworICAgICAgICAgICAgbV9kZXN0
aW5hdGlvbi0+c3RhcnQoZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkpOwogICAgICAg
ICB9CiAgICAgfQogfQogCitGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IERlZmF1
bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6ZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkK
K3sKKyAgICBpZiAoYXV0byogd29ya2xldFByb3h5ID0gY29udGV4dCgpLmF1ZGlvV29ya2xldCgp
LnByb3h5KCkpIHsKKyAgICAgICAgcmV0dXJuIFt3b3JrbGV0UHJveHkgPSBtYWtlUmVmKCp3b3Jr
bGV0UHJveHkpXShGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsKKyAgICAgICAgICAgIHdv
cmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW2Z1bmN0aW9u
ID0gV1RGTW92ZShmdW5jdGlvbildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbigpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisgICAgfQorICAgIHJldHVybiB7IH07Cit9
CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRS
ZW5kZXJpbmcoKQogewogICAgIEFTU0VSVChpc0luaXRpYWxpemVkKCkpOwogICAgIGlmICghaXNJ
bml0aWFsaXplZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKIAotICAgIG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7CisgICAgbV9kZXN0aW5hdGlvbi0+
c3RhcnQoZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkpOwogICAgIHJldHVybiB7IH07
CiB9CiAKQEAgLTExOCw3ICsxMzMsNyBAQCB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6cmVzdW1lKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGlz
SW5pdGlhbGl6ZWQoKSk7CiAgICAgaWYgKGlzSW5pdGlhbGl6ZWQoKSkKLSAgICAgICAgbV9kZXN0
aW5hdGlvbi0+c3RhcnQoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoZGlzcGF0Y2hU
b1JlbmRlclRocmVhZEZ1bmN0aW9uKCkpOwogICAgIGNvbnRleHQoKS5wb3N0VGFzayhXVEZNb3Zl
KGZ1bmN0aW9uKSk7CiB9CiAKQEAgLTE2Myw3ICsxNzgsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBE
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnNldENoYW5uZWxDb3VudCh1bnNpZ25lZCBjaGFu
bmVsQwogICAgICAgICAvLyBSZS1jcmVhdGUgZGVzdGluYXRpb24uCiAgICAgICAgIG1fZGVzdGlu
YXRpb24tPnN0b3AoKTsKICAgICAgICAgY3JlYXRlRGVzdGluYXRpb24oKTsKLSAgICAgICAgbV9k
ZXN0aW5hdGlvbi0+c3RhcnQoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbi0+c3RhcnQoZGlzcGF0
Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKCkpOwogICAgIH0KIAogICAgIHJldHVybiB7IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCBlZGUxNTMzYzE2NDgyOWNmMWUyM2JhOTNjMjlh
ODg2MzQyMDNlNGQyLi43ZDY1ZTI1ZWI1NTQxYTk3NzZkNTAwNmUxNzJkMjAwNWI0M2RlOGY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYs
IE9wdGlvbmFsPGZsb2F0Pik7CiAgICAgdm9pZCBjcmVhdGVEZXN0aW5hdGlvbigpOwogCisgICAg
RnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
RnVuY3Rpb24oKTsKKwogICAgIHZvaWQgaW5pdGlhbGl6ZSgpIGZpbmFsOwogICAgIHZvaWQgdW5p
bml0aWFsaXplKCkgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkKSBmaW5hbDsKQEAgLTYxLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtYXhDaGFubmVsQ291bnQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzUGxheWluZygpIGZp
bmFsOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRp
b247CisgICAgUmVmUHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CiAgICAgU3Ry
aW5nIG1faW5wdXREZXZpY2VJZDsKICAgICB1bnNpZ25lZCBtX251bWJlck9mSW5wdXRDaGFubmVs
cyB7IDAgfTsKICAgICBmbG9hdCBtX3NhbXBsZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKaW5kZXggZmFhMzM2NTJlZGIzNzYzYjM5YzFmNmJiNDdmNmJiMjRmYTAzYzQy
MC4uNTNiNTU0MTNlOTI2MWI3NzBlZjdhYzNiYWFkNmQ4NmUwYzgyOWVjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzEsNyArMzEsMTAgQEAKICNpbmNsdWRlICJBdWRpb0J1
cy5oIgogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0LmgiCisjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0TWVz
c2FnaW5nUHJveHkuaCIKICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTk2LDkg
Kzk5LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpz
dGFydFJlbmRlcmluZygpCiAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gdHJ1ZTsKICAgICBhdXRv
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKIAotICAgIC8vIEZJWE1FOiBTaG91bGQg
d2UgY2FsbCBsYXp5SW5pdGlhbGl6ZSBoZXJlPwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJv
YmFibHkgbGltaXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdlIGNyZWF0ZSBmb3Igb2ZmbGluZSBh
dWRpby4KLSAgICBtX3JlbmRlclRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJvZmZsaW5lIHJlbmRl
cmVyIiwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSgpIG11
dGFibGUgeworICAgIGF1dG8gb2ZmVGhyZWFkUmVuZGVyaW5nID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIHJl
c3VsdCA9IG9mZmxpbmVSZW5kZXIoKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cmVzdWx0LCBjdXJyZW50U2FtcGxlRnJhbWUgPSBtX2N1cnJlbnRTYW1wbGVGcmFtZSwgcHJvdGVj
dGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsKICAgICAgICAgICAgIG1fc3RhcnRl
ZFJlbmRlcmluZyA9IGZhbHNlOwpAQCAtMTE0LDcgKzExNSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgfSwgVGhyZWFk
VHlwZTo6QXVkaW8pOworICAgIH07CisKKyAgICBpZiAoYXV0byogd29ya2xldFByb3h5ID0gY29u
dGV4dCgpLmF1ZGlvV29ya2xldCgpLnByb3h5KCkpIHsKKyAgICAgICAgd29ya2xldFByb3h5LT5w
b3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxTY29wZShbb2ZmVGhyZWFkUmVuZGVyaW5nID0g
V1RGTW92ZShvZmZUaHJlYWRSZW5kZXJpbmcpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0
YWJsZSB7CisgICAgICAgICAgICBvZmZUaHJlYWRSZW5kZXJpbmcoKTsKKyAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQor
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBsaW1pdCB0aGUgbnVtYmVyIG9mIHRo
cmVhZHMgd2UgY3JlYXRlIGZvciBvZmZsaW5lIGF1ZGlvLgorICAgIG1fcmVuZGVyVGhyZWFkID0g
VGhyZWFkOjpjcmVhdGUoIm9mZmxpbmUgcmVuZGVyZXIiLCBXVEZNb3ZlKG9mZlRocmVhZFJlbmRl
cmluZyksIFRocmVhZFR5cGU6OkF1ZGlvKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDk1Y2MxMDg1NWQ4YmFmZWQ3YTQ1M2M0YmU5ZjRkOTJkZTI0NTM3YmIuLmM3ZWNm
ZGQxNTVjNTI4MGQ1ODU0YmZiNTJiZWJlYTAyODRhZGI3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0y
MDUsNyArMjA1LDEwIEBAIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuY3Bw
CiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldC5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CitNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcAogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRUaHJlYWQuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCiBN
b2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vQmlx
dWFkRmlsdGVyTm9kZS5jcHAKQEAgLTI1NzksNiArMjU4Miw3IEBAIHdvcmtsZXRzL1BhaW50V29y
a2xldEdsb2JhbFNjb3BlLmNwcAogd29ya2xldHMvV29ya2xldC5jcHAKIHdvcmtsZXRzL1dvcmts
ZXRDb25zb2xlQ2xpZW50LmNwcAogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAord29y
a2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAKIHdvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmNwcAogeG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKIHhtbC9ET01QYXJzZXIu
Y3BwCkBAIC0yNjgwLDYgKzI2ODQsNyBAQCBKU0F1ZGlvVGltZXN0YW1wLmNwcAogSlNBdWRpb1Ry
YWNrLmNwcAogSlNBdWRpb1RyYWNrTGlzdC5jcHAKIEpTQXVkaW9Xb3JrbGV0LmNwcAorSlNBdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKIEpTQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKIEpTQXVkaW9X
b3JrbGV0Tm9kZU9wdGlvbnMuY3BwCiBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElu
cHV0cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBmMzUyZGIzYzIxMGNlYWNlNTI5OTE4NjhlY2IwY2I3MzYzNWNmZWQwLi5j
YTAwZjllMGEyNmJmMjFhOGJjYzlmZjU1MTAyMmY3NDc5ODEyMGRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDUxLDYgKzI0
NTEsMTAgQEAKIAkJODMzQjlFMzIxRjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbURpcmVj
dG9yeUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzNCOUUyRjFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aCAqLzsgfTsKIAkJODMzQjlFMzQxRjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUVudHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzNCOUUy
QTFGNTA4RDgwMDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRW50cnkuaCAqLzsgfTsKIAkJODMzQjlF
MzYxRjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQjlFMkMxRjUwOEQ4MDAwRTBF
NDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oICovOyB9OworCQk4MzNCRDgxNzI1MjRENEYy
MDA2RTcyQjMgLyogV29ya2xldFBlbmRpbmdUYXNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMzQkQ4MTMyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmts
ZXRQZW5kaW5nVGFza3MuaCAqLzsgfTsKKwkJODMzQkQ4MTgyNTI0RDRGNTAwNkU3MkIzIC8qIFdv
cmtsZXRHbG9iYWxTY29wZVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzNCRDgxNjI1MjRENEUzMDA2RTcyQjMgLyogV29ya2xldEdsb2JhbFNj
b3BlUHJveHkuaCAqLzsgfTsKKwkJODMzQkQ4MUQyNTI0RDUzMDAwNkU3MkIzIC8qIEF1ZGlvV29y
a2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzNCRDgxOTI1MjRENTFCMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaCAqLzsgfTsKKwkJODMzQkQ4MUUyNTI0RDUzNDAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1l
c3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzNCRDgxQjI1MjRENTFDMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJv
eHkuaCAqLzsgfTsKIAkJODMzRDFDNzYyNEQ4RDU0RjAwRTgxM0RGIC8qIFdlYktpdEF1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODMzRDFDNzMyNEQ4RDUzMzAwRTgxM0RGIC8qIFdlYktpdEF1ZGlvQnVmZmVyU291cmNl
Tm9kZS5oICovOyB9OwogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNo
YW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQzRDk4
NDI0RDBERUU5MDA5QUJENDkgLyogV2ViS2l0T3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDNEOTgxMjREMERFQTkwMDlBQkQ0
OSAvKiBXZWJLaXRPc2NpbGxhdG9yTm9kZS5oICovOyB9OwpAQCAtMjQ2MCw2ICsyNDY0LDcgQEAK
IAkJODM0NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAw
RkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAy
QjZFRDIgLyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRv
T3B0aW9ucy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07CisJCTgz
NEE2QTNBMjUyNjg0NEEwMDc0N0Y1RCAvKiBXb3JrbGV0UGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0QTZBMzgyNTI2ODQ0MTAwNzQ3
RjVEIC8qIFdvcmtsZXRQYXJhbWV0ZXJzLmggKi87IH07CiAJCTgzNENCRkMyMjREQzc4NjcwMEMy
QTNEOCAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0Q0JGQkYyNERDNzg1NTAwQzJBM0Q4IC8q
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VPcHRpb25zLmggKi87IH07CiAJCTgzNERGQUQwMUY3REFF
NUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVk
U3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTgzNTA1MUE0MjRGNTczQzQwMDk5MTFENyAvKiBJSVJGaWx0ZXJOb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwNTFBMjI0RjU3M0FG
MDA5OTExRDcgLyogSUlSRmlsdGVyTm9kZS5oICovOyB9OwpAQCAtMjUwOCw2ICsyNTEzLDcgQEAK
IAkJODM4Rjg2REIxRjUwOUU3QjAwRThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhGODZENzFG
NTA5RTZDMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCAqLzsgfTsKIAkJODM5
OTQ3MEMxRjUwQjYzRTAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTk0NzA3MUY1MEI2MzgwMEU5RDg2QiAv
KiBET01GaWxlU3lzdGVtLmggKi87IH07CiAJCTgzOTk0NzEwMUY1MEI2RkEwMEU5RDg2QiAvKiBK
U0RPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzOTk0NzBFMUY1MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLzsg
fTsKKwkJODM5QTA5NUQyNTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmggKi87IH07CiAJCTgzOUEyRjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJh
Y2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5
QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAw
NjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1l
bnQuaCAqLzsgfTsKIAkJODM5QkU2RDUyNEY1ODc2MjAwNERGNTBGIC8qIElJUkZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QkU2RDIyNEY1
ODc1NTAwNERGNTBGIC8qIElJUkZpbHRlci5oICovOyB9OwpAQCAtMjUzNSw2ICsyNTQxLDcgQEAK
IAkJODNEMzVBRUMxQzcxODdGQTAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVB
MUM3MTg3RUQwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJ
CTgzRDM1QUYyMUM3MThEOTAwMEY3MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYw
MUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsK
IAkJODNENTExRjYyNTBDMUNCRjAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENTExRjUyNTBDMUNBODAwMkVE
QzUxIC8qIFB1c2hQdWxsRklGTy5oICovOyB9OworCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIg
LyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9OwogCQk4M0RCOUUwRjI0REExOTQ5MDAzN0I0Njgg
LyogQmlxdWFkRmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUu
aCAqLzsgfTsKIAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5
RTBFMjREQTE4QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggKi87IH07CiAJCTgz
RTM1OUEyMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFMzU5QTAxQkIxMDMxRDAwMkNF
Qjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50LmggKi87IH07CkBAIC0yNTQ0LDYgKzI1NTEsNyBAQAog
CQk4M0ZCMzM3MTFGNTA4QTU0MDA5ODZFNTQgLyogRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZCMzM2RDFG
NTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTgz
RkIzMzczMUY1MDhBNTgwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1
NCAvKiBGaWxlU3lzdGVtRW50cnkuaCAqLzsgfTsKIAkJODNGQjMzNzUxRjUwOEE1QjAwOTg2RTU0
IC8qIEZpbGVTeXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzRkIzMzZDMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmls
ZUVudHJ5LmggKi87IH07CisJCTgzRkM5OTRCMjUyNTU3RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmts
ZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzRkM5OTQ5MjUyNTU3RTcwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCAqLzsgfTsK
IAkJODNGRTdDQTcxREE5RjFBNzAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBNDFEQTlGMTY2MDAzNzIz
N0MgLyogVUlFdmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllcklu
aXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3
Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU5MDI3MUUzMDdDMzAwMDNF
OTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU5MDI2MUUzMDdDMUMwMDNFOTE5OSAvKiBQZXJmb3JtYW5j
ZU1vbml0b3IuaCAqLzsgfTsKQEAgLTEwNTc4LDYgKzEwNTg2LDEzIEBACiAJCTgzM0I5RTJEMUY1
MDhEODAwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzQjlFMkUxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmls
ZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RmlsZVN5c3RlbUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzQjlF
MkYxRjUwOEQ4MDAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODEzMjUyNEQ0RTIwMDZFNzJCMyAv
KiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdvcmtsZXRQZW5kaW5nVGFza3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMz
QkQ4MTUyNTI0RDRFMjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2xldFBlbmRpbmdUYXNrcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JEODE2MjUyNEQ0RTMwMDZFNzJCMyAvKiBX
b3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzNCRDgxOTI1MjRENTFCMDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIz
IC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1l
c3NhZ2luZ1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29y
a2xldE1lc3NhZ2luZ1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzM0JE
ODFDMjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzM0NGNzBGMjBEQjNGNUYw
MDE0MUJDQyAvKiBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZU9ic2VydmVyQ3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzRDFDNzMyNEQ4RDUzMzAwRTgxM0RGIC8q
IFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzRDFD
NzUyNEQ4RDUzMzAwRTgxM0RGIC8qIFdlYktpdEF1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwNTg2LDYgKzEwNjAxLDcgQEAKIAkJODM0M0Q5ODMyNEQwREVBOTAwOUFCRDQ5
IC8qIFdlYktpdE9zY2lsbGF0b3JOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRPc2NpbGxhdG9yTm9kZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNDhCRkE5MUI4NTcyOTUwMDkxMkYz
NiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2xhc3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDbGFzc0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODM0QTZBMzgyNTI2ODQ0MTAwNzQ3RjVEIC8qIFdvcmtsZXRQYXJhbWV0
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtsZXRQYXJhbWV0ZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNEI4NkE2MUM1NkU4M0EwMEYzRjBF
MyAvKiBIVE1MRGF0YUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRh
RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNEI4NkE3MUM1NkU4
M0EwMEYzRjBFMyAvKiBIVE1MRGF0YUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTERhdGFFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzNEI4NkE4MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxEYXRhRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MDQsNiArMTA3MjAsNyBAQAogCQk4Mzk5NDcwOTFGNTBC
NjM4MDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODM5OTQ3MEQxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyog
SlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9N
RmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMDk1QjI1MjRG
Mzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3
RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFN0YXRlVHJhY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdC
UkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFdC
UkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTIsNiArMTA3
NjksNyBAQAogCQk4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2
ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Q1MTFG
MzI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFB1c2hQdWxsRklGTy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFB1bGxGSUZPLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0RCOUUwQTI0REExOEI0MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmlx
dWFkRmlsdGVyVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzREI5RTBD
MjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJp
cXVhZEZpbHRlclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEQjlFMEQy
NERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJpcXVhZEZp
bHRlck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3OTEsNiAr
MTA4MDksOSBAQAogCQk4M0ZCMzM2RDFGNTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbURpcmVj
dG9yeUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0ZCMzM2RTFG
NTA4QTRFMDA5ODZFNTQgLyogRmlsZVN5c3RlbUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1FbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRkIzMzZGMUY1MDhBNEUwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRW50cnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUVudHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRkM5OTQ3MjUyNTU3RTcwMDE3NzYxOCAvKiBB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0OTI1MjU1N0U3MDAxNzc2
MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvV29ya2xldFRo
cmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0ZDOTk0QTI1MjU1N0U4MDAx
Nzc2MTggLyogQXVkaW9Xb3JrbGV0VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlv
V29ya2xldFRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRkU3Q0Ez
MURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudE1vZGlmaWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudEluaXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNGRTdDQTUxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50SW5pdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0Miw2ICsxNzU2Myw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0
ICovLAorCQkJCTZGRTE5ODEzMjE3ODM5N0IwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtl
ci5jcHAgKi8sCisJCQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRC
cmVha2VyLmggKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCkBAIC0xNzU1NCw4ICsx
NzU3Nyw2IEBACiAJCQkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCAq
LywKIAkJCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8s
CiAJCQkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLywKLQkJ
CQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICov
LAotCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5o
ICovLAogCQkJCTZGMjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRlci5j
cHAgKi8sCiAJCQkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVy
LmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRy
eS5oICovLApAQCAtMTg3MjAsNiArMTg3NDEsOCBAQAogCQkJCTJFNDM0NjNEMEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJMkU0MzQ2M0UwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCiAJCQkJMkU0MzQ2M0YwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCisJCQkJODNENkFBRTQyNTI0
RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi8sCisJCQkJODM5
QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aCAqLywKIAkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJv
eHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5j
cHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCAq
LywKQEAgLTE5NzM4LDggKzE5NzYxLDEyIEBACiAJCQkJNEJERUEzMjYyMTdGRTJGQTAwNTJERkNE
IC8qIFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNEJERUEzMjQyMTdGRTJFNDAwNTJE
RkNEIC8qIFdvcmtsZXRHbG9iYWxTY29wZS5oICovLAogCQkJCTRCREVBMzJBMjE4MDEwNzIwMDUy
REZDRCAvKiBXb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODE2MjUyNEQ0RTMw
MDZFNzJCMyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oICovLAogCQkJCTgzQUNEMDEwMjUy
MjlFMDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5oICovLAogCQkJCTgzQUNEMDEyMjUyMjlF
MDQwMDBEMTI0RSAvKiBXb3JrbGV0T3B0aW9ucy5pZGwgKi8sCisJCQkJODM0QTZBMzgyNTI2ODQ0
MTAwNzQ3RjVEIC8qIFdvcmtsZXRQYXJhbWV0ZXJzLmggKi8sCisJCQkJODMzQkQ4MTUyNTI0RDRF
MjAwNkU3MkIzIC8qIFdvcmtsZXRQZW5kaW5nVGFza3MuY3BwICovLAorCQkJCTgzM0JEODEzMjUy
NEQ0RTIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rhc2tzLmggKi8sCiAJCQkJNEJERUEzMjky
MTgwMDQwQzAwNTJERkNEIC8qIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKIAkJCQk0
QkRFQTMyNzIxODAwM0Y3MDA1MkRGQ0QgLyogV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLywK
IAkJCSk7CkBAIC0yOTg1OCwxMSArMjk4ODUsMTggQEAKIAkJCQk4M0I5ODcwNjI1MjI1RjBFMDBB
OTM5RjEgLyogQXVkaW9Xb3JrbGV0LmNwcCAqLywKIAkJCQk4M0I5ODcwMTI1MjI1RjBDMDBBOTM5
RjEgLyogQXVkaW9Xb3JrbGV0LmggKi8sCiAJCQkJODNCOTg2RkQyNTIyNUYwQjAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldC5pZGwgKi8sCisJCQkJODMzQkQ4MUEyNTI0RDUxQzAwNkU3MkIzIC8qIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCAqLywKKwkJCQk4MzNCRDgxOTI1MjRENTFCMDA2RTcy
QjMgLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCAqLywKKwkJCQk4M0ZDOTk0NzI1MjU1N0U3
MDAxNzc2MTggLyogQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsICovLAorCQkJCTgzM0JEODFD
MjUyNEQ1MUQwMDZFNzJCMyAvKiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAgKi8sCisJ
CQkJODMzQkQ4MUIyNTI0RDUxQzAwNkU3MkIzIC8qIEF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5
LmggKi8sCiAJCQkJODNCOTg3MDMyNTIyNUYwQzAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUu
Y3BwICovLAogCQkJCTgzQjk4NzA3MjUyMjVGMEUwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2Rl
LmggKi8sCiAJCQkJODNCOTg3MDQyNTIyNUYwRDAwQTkzOUYxIC8qIEF1ZGlvV29ya2xldE5vZGUu
aWRsICovLAogCQkJCTgzQjk4NzAwMjUyMjVGMEIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXROb2Rl
T3B0aW9ucy5oICovLAogCQkJCTgzQjk4NzA1MjUyMjVGMEQwMEE5MzlGMSAvKiBBdWRpb1dvcmts
ZXROb2RlT3B0aW9ucy5pZGwgKi8sCisJCQkJODNGQzk5NEEyNTI1NTdFODAwMTc3NjE4IC8qIEF1
ZGlvV29ya2xldFRocmVhZC5jcHAgKi8sCisJCQkJODNGQzk5NDkyNTI1NTdFNzAwMTc3NjE4IC8q
IEF1ZGlvV29ya2xldFRocmVhZC5oICovLAogCQkJCTgzMTk4RkJCMjRBMTYwQzEwMDQyMEIwNSAv
KiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0QTE2MEMxMDA0MjBCMDUg
LyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRBMTYwQzEwMDQyMEIwNSAv
KiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwNDY3LDggKzMwNTAxLDExIEBACiAJCQkJ
MDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTg3MEIyNTIyNUY3RDAwQTkzOUYxIC8q
IEF1ZGlvV29ya2xldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMzQkQ4MUQyNTI0RDUzMDAwNkU3
MkIzIC8qIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzNC
RDgxRTI1MjRENTM0MDA2RTcyQjMgLyogQXVkaW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQjk4NzA5MjUyMjVGNzIwMEE5MzlGMSAvKiBBdWRpb1dvcmtsZXRO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5ODcwQTI1MjI1Rjc2MDBBOTM5RjEgLyogQXVk
aW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRkM5OTRCMjUyNTU3
RUEwMDE3NzYxOCAvKiBBdWRpb1dvcmtsZXRUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdF
RTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAwQjc5
NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzcyLDYg
KzMxODA5LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElu
bGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8q
IElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3ODM5
N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3ODAsNyArMzE4MTgsNiBAQAogCQkJ
CUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29u
dGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZF
MiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEyNTE1
MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICov
LApAQCAtMzQ1OTUsNiArMzQ2MzIsOCBAQAogCQkJCTFBQkM3MTA5MTcwRTVFMUIwMEY5QTlENiAv
KiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0Iw
NTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMDk1RDI1MjRGMzdGMDBF
RUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVu
TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8qIFdv
cmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYwOSw3ICszNDY0OCwxMCBA
QAogCQkJCTRCREVBMzIwMjE3RUM1NUYwMDUyREZDRCAvKiBXb3JrbGV0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0QjdGOUM1MjIxODNCNUU1MDAxQ0VCQTAgLyogV29ya2xldENvbnNvbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRCREVBMzI1MjE3RkUyRTQwMDUyREZDRCAvKiBXb3JrbGV0
R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzM0JEODE4MjUyNEQ0RjUwMDZFNzJC
MyAvKiBXb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNBQ0Qw
MTMyNTIyOUUxMDAwMEQxMjRFIC8qIFdvcmtsZXRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4MzRBNkEzQTI1MjY4NDRBMDA3NDdGNUQgLyogV29ya2xldFBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzM0JEODE3MjUyNEQ0RjIwMDZFNzJCMyAvKiBXb3JrbGV0UGVuZGluZ1Rh
c2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRFQTMyODIxODAwM0Y3MDA1MkRGQ0QgLyogV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTI0MDk5RTY0
OTIwMDU2RTU4MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0
aW5zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IGIxNGI4MTU0MmRiODg5ZWM2
ZDI1OWJjNWI3MGVmMmE1MDk5Yzk2ZDEuLjMyM2RlZTc4ZDhiYmVjOWVjZWUxNTZiOTMzZWFkMDg2
MTQxOTdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIgogCi0jaWYgRU5B
QkxFKENTU19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNp
bmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdFRhc2suaCIKICNpbmNsdWRlICJKU0RPTUd1YXJkZWRP
YmplY3QuaCIKQEAgLTE1MSw0ICsxNDksMyBAQCBKU1dvcmtsZXRHbG9iYWxTY29wZSogdG9KU1dv
cmtsZXRHbG9iYWxTY29wZShWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaAppbmRleCA4ZmVmOTIwMWZlZGMzNjFlOTI1Y2M4
MDYyZjJjZjI2ZGEzMWNlYzYwLi5iOGExN2VjNGU3ZTJmYWNjYmU4NDY3NGNhMDE0ZDEzNWJlNzA1
OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9i
YWxTY29wZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2UuaApAQCAtMjYsOCArMjYsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lm
IEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3Qu
aCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Lmgi
CkBAIC04OCw1ICs4NiwzIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXb3JrbGV0R2xvYmFsCiBKU1dvcmtsZXRHbG9i
YWxTY29wZSogdG9KU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19QQUlOVElO
R19BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKaW5kZXggNjJiMGQ2ZDU0YTRmMDAwMmRlZTRiZDJkZmM3ZWM2ZWQxMzdkODQ2OC4uYjNh
OGQ1YjEzYzQ1MTFjZjc4NDI1NzU5ZDYwNTE0ODExMTQ5MGMwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNTUsNiArNTUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oQXVkaW9MaXN0ZW5lcikgXAogICAgIG1h
Y3JvKEF1ZGlvUGFyYW1NYXApIFwKICAgICBtYWNybyhBdWRpb1dvcmtsZXQpIFwKKyAgICBtYWNy
byhBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKEF1ZGlvV29ya2xldE5vZGUp
IFwKICAgICBtYWNybyhBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNy
byhBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAppbmRleCAzOGRmNjc3NTJl
OTBhNmEyZTAxNzRjZmFmYmM0Zjg3MWVhODFjMTRhLi4wNzY2MDgzODA3NGUyNmViZjQzMWQ1MWE5
YWYzMTAxOWM1OWEwNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRE9N
R0NPdXRwdXRDb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCisjaW5j
bHVkZSAiSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFzZS5oIgogI2luY2x1ZGUg
IkpTRE9NV2luZG93LmgiCkBAIC02OCw5ICs2OSwxMiBAQCBKU1ZNQ2xpZW50RGF0YTo6SlNWTUNs
aWVudERhdGEoVk0mIHZtKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAsIG1faGVh
cENlbGxUeXBlRm9ySlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5
cGU6OmNyZWF0ZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKSkKICNlbmRpZgorICAgICwg
bV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZShKU0M6Oklzb0hlYXBDZWxsVHlw
ZTo6Y3JlYXRlPEpTV29ya2xldEdsb2JhbFNjb3BlPigpKQogI2lmIEVOQUJMRShDU1NfUEFJTlRJ
TkdfQVBJKQogICAgICwgbV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
KEpTQzo6SXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZT4o
KSkKLSAgICAsIG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGUoSlNDOjpJc29I
ZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT4oKSkKKyNlbmRpZgorI2lm
IEVOQUJMRShXRUJfQVVESU8pCisgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUoSlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlPigpKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAg
LCBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdChKU0M6Oklz
b0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdD4oKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApp
bmRleCA4M2I4MjM0YzMzNWRlZDE0NTBkMTgxM2ZlODQyOTdhOTc1ODM4OTUxLi5iODQ0MGU4Nzcw
ZTQ3MjkxZjdlZTIwNjMxOTllYTA1YzNjNGJiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC05OSw5ICs5OSwxMiBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6
OkhlYXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZTsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkhlYXBDZWxsVHlwZT4gbV9oZWFw
Q2VsbFR5cGVGb3JKU1dvcmtsZXRHbG9iYWxTY29wZTsKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxU
eXBlRm9ySlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlND
OjpIZWFwQ2VsbFR5cGU+IG1faGVhcENlbGxUeXBlRm9ySlNXb3JrbGV0R2xvYmFsU2NvcGU7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Okhl
YXBDZWxsVHlwZT4gbV9oZWFwQ2VsbFR5cGVGb3JKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlOwog
I2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEpTQzo6SGVhcENlbGxUeXBlPiBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkds
b2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaAppbmRleCBkMGE1NDdhYzU2NzM5ZmRkZTFlNzBlOGVjMTliMmI0ODg1
ZWI1NjA5Li5lMzkwMTgwZjU3MWY5ZTFlMzViYzkyM2IxZDc3MWQ0Yjk1Y2VkYTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
CkBAIC0yNiw2ICsyNiw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlYnVn
Z2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgU2Ny
aXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJH
bG9iYWxTY29wZTsKIAotY2xhc3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciB7CitjbGFzcyBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyIDogcHVibGljIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXb3JrZXJTY3JpcHRDb250cm9s
bGVyKFdvcmtlckdsb2JhbFNjb3BlKik7CkBAIC02Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAv
LyBmb3JiaWRFeGVjdXRpb24oKS9pc0V4ZWN1dGlvbkZvcmJpZGRlbigpIHRvIGd1YXJkIGFnYWlu
c3QgcmVlbnRyeSBpbnRvIEpTLgogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFk
LgogICAgIHZvaWQgc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpOwotICAgIGJvb2wgaXNU
ZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNUZXJtaW5hdGluZ0V4ZWN1
dGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gQ2FsbGVkIG9uIFdvcmtlciB0aHJlYWQgd2hl
biBKUyBleGl0cyB3aXRoIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiBjYXVzZWQgYnkgZm9yYmlkRXhl
Y3V0aW9uKCkgcmVxdWVzdCwKICAgICAvLyBvciBieSBXb3JrZXIgdGhyZWFkIHRlcm1pbmF0aW9u
IGNvZGUgdG8gcHJldmVudCBmdXR1cmUgZW50cnkgaW50byBKUy4KQEAgLTc5LDExICs4MCwxMSBA
QCBwdWJsaWM6CiAKICAgICBKU0M6OlZNJiB2bSgpIHsgcmV0dXJuICptX3ZtOyB9CiAgICAgCi0g
ICAgdm9pZCByZWxlYXNlSGVhcEFjY2VzcygpOwotICAgIHZvaWQgYWNxdWlyZUhlYXBBY2Nlc3Mo
KTsKKyAgICB2b2lkIHJlbGVhc2VIZWFwQWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJl
SGVhcEFjY2VzcygpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihK
U0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKLSAgICB2b2lk
IHJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90
aWZpY2F0aW9uQ2FsbGJhY2spOworICAgIHZvaWQgYWRkVGltZXJTZXROb3RpZmljYXRpb24oSlND
OjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgZmluYWw7CisgICAg
dm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1l
ck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0YWNoRGVidWdnZXIo
SlNDOjpEZWJ1Z2dlciopOwogICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCAxMGYzZTY2ODY2NTQ1YTVhNjBhOWVlNWE5Zjg2NzRhZTNjMjg0OTMyLi41OGZk
MWE3YTI2ZmRkMWRhYzRkYjJiNzBiMWM1NDUzNzViY2Q0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzc1LDcgKzc3
NSw3IEBAIHN1YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5cGUKIAogICAgICMgRm9yIHdv
cmtlcnMsIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGEgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
CiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFs
U2NvcGUiOwotICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVjdCBpcyBhIFBhaW50
V29ya2xldEdsb2JhbFNjb3BlLgorICAgICMgRm9yIHdvcmtsZXRzLCB0aGUgZ2xvYmFsIG9iamVj
dCBpcyBhIFBhaW50V29ya2xldEdsb2JhbFNjb3BlIG9yIGEgQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiV29ya2xldEds
b2JhbFNjb3BlIjsKIAogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1p
ZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMu
cGwKaW5kZXggYmVlMGZjNTA2OTE5ZmNjZmQxNzVmNjljYzUyM2M1NzU2YmMwOGE4OC4uZjRjODRi
Yzg4YzQxMTQ1ZGQxNmVkMzgzZDRkMzljNDJjYzVkNjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAgLTQ3LDYgKzQ3LDcg
QEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlOworbXkgJGF1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZTsKIG15ICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHN1cHBsZW1lbnRh
bE1ha2VmaWxlRGVwczsKIG15ICRpZGxBdHRyaWJ1dGVzRmlsZTsKQEAgLTY5LDYgKzcwLDcgQEAg
R2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkc2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlLAogICAgICAgICAgICAncGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
PXMnID0+IFwkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAorICAgICAg
ICAgICAnYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkYXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAogICAgICAgICAgICAndGVzdEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1zJyA9PiBcJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUsCiAgICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM9cycgPT4gXCRz
dXBwbGVtZW50YWxNYWtlZmlsZURlcHMsCiAgICAgICAgICAgICdpZGxBdHRyaWJ1dGVzRmlsZT1z
JyA9PiBcJGlkbEF0dHJpYnV0ZXNGaWxlLApAQCAtODMsNiArODUsNyBAQCBkaWUoJ011c3Qgc3Bl
Y2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLWRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRgogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS1zZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVj
aWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKK2RpZSgnTXVzdCBzcGVjaWZ5IGFuIG91
dHB1dCBmaWxlIHVzaW5nIC0tYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxl
LicpIHVubGVzcyBkZWZpbmVkKCRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUpOwogZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlKSB8fCAhZGVmaW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKIGRp
ZSgnTXVzdCBzcGVjaWZ5IHRoZSBmaWxlIGxpc3RpbmcgYWxsIElETHMgdXNpbmcgLS1pZGxGaWxl
TmFtZXNMaXN0LicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlTmFtZXNMaXN0KTsKIGRpZSgnTXVz
dCBzcGVjaWZ5IElETCBhdHRyaWJ1dGVzIGZpbGUgdXNpbmcgLS1pZGxBdHRyaWJ1dGVzRmlsZS4n
KSB1bmxlc3MgZGVmaW5lZCgkaWRsQXR0cmlidXRlc0ZpbGUpOwpAQCAtOTUsNiArOTgsNyBAQCAk
ZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlID0gQ3lnd2luUGF0aElm
TmVlZGVkKCRkZWRpY2F0ZWRXb3JrZQogJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yc0ZpbGUpOwogJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwog
JHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5l
ZWRlZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKKyRhdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiAkc3VwcGxlbWVudGFsTWFr
ZWZpbGVEZXBzID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMp
IGlmIGRlZmluZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyk7CiAKIG15IEBpZGxGaWxlTmFt
ZXM7CkBAIC0xMzUsNiArMTM5LDcgQEAgbXkgJGRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0NvZGUgPSAiIjsKIG15ICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0g
IiI7CiBteSAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7Citt
eSAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiBteSAkdGVz
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSA9ICIiOwogCiBteSAkaXNvU3Vic3BhY2VzSGVh
ZGVyQ29kZSA9IDw8RU5EOwpAQCAtMjM3LDYgKzI0Miw4IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVO
YW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewogICAgICAgICAgICAgICAgICR3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAg
ICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIlBhaW50V29ya2xldCIpIHsKICAgICAg
ICAgICAgICAgICAkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRh
dHRyaWJ1dGVDb2RlOworICAgICAgICAgICAgfSBlbHNpZiAoJGdsb2JhbENvbnRleHQgZXEgIkF1
ZGlvV29ya2xldCIpIHsKKyAgICAgICAgICAgICAgICAkYXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgfSBlbHNpZiAo
JGdsb2JhbENvbnRleHQgZXEgJHRlc3RHbG9iYWxDb250ZXh0TmFtZSkgewogICAgICAgICAgICAg
ICAgICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlIC49ICRhdHRyaWJ1dGVDb2RlOwog
ICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI1NCw2ICsyNjEsNyBAQCBHZW5lcmF0ZVBhcnRpYWxJ
bnRlcmZhY2UoIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgJGRlZGljYXRlZFdvcmtlckds
b2JhbFNjbwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUiLCAkc2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzQ29kZSwgJHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJm
YWNlKCJXb3JrbGV0R2xvYmFsU2NvcGUiLCAkd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
Q29kZSwgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0
aWFsSW50ZXJmYWNlKCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIsICRwYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yc0ZpbGUpOworR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCJBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZSIsICRhdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICRhdWRpb1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogR2VuZXJhdGVQYXJ0aWFsSW50ZXJm
YWNlKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlLCAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVmaW5lZCgkdGVzdEds
b2JhbENvbnRleHROYW1lKTsKIAogaWYgKCRpc29TdWJzcGFjZXNIZWFkZXJGaWxlKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMGRhZTExMDdkMzM0YmM4ZjQzZGYyZjRmN2U4NGE5ODNjMzVkNjZmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbApAQCAtMCwwICsxLDIgQEAKK3BhcnRpYWwgaW50
ZXJmYWNlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2UyNGEyN2IwYTU1OGM0NTVhZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhp
cyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTQXVkaW9X
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaCBhbmQKKyAgICBKU0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2Ny
aXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnMuaCBhbmQgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5j
cHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGEyN2IwYTU1OGM0NTVh
ZTFlMzE1YTBjZjExYmUyN2M2NDg3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmgKQEAgLTAsMCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQg
dG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzLmggYW5kCisgICAgSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5jcHAgd2VyZSBjcmVhdGVkIGZvciBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
cy5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8g
cmVnZW5lcmF0ZSBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmggYW5kIEpT
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgor
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKaW5kZXggMTM2ZTRm
MTRlY2ZlNWU0YjlmOWM5NTIwMjc0MzlhNGEzMWQ0OTY0NS4uNmEwZTE5NjY0NTQyZTgxNjgxYzdh
Njk3ZWNjNzExNWI3YTRkZmMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNT
U1BhaW50V29ya2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29y
a2xldC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01DU1NOYW1lc3BhY2UuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhaW50V29ya2xldEdsb2JhbFNjb3Bl
LmgiCisjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlUHJveHkuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTYsMTEgKzU3LDE4
IEBAIGNvbnN0IGNoYXIqIERPTUNTU1BhaW50V29ya2xldDo6c3VwcGxlbWVudE5hbWUoKQogICAg
IHJldHVybiAiRE9NQ1NTUGFpbnRXb3JrbGV0IjsKIH0KIAotdm9pZCBQYWludFdvcmtsZXQ6OmFk
ZE1vZHVsZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3Jr
bGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorLy8gRklY
TUU6IEdldCByaWQgb2YgdGhpcyBvdmVycmlkZSBhbmQgcmVseSBvbiB0aGUgc3RhbmRhcmQtY29t
cGxpYW50IFdvcmtsZXQ6OmFkZE1vZHVsZSgpIGluc3RlYWQuCit2b2lkIFBhaW50V29ya2xldDo6
YWRkTW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGF1dG8qIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhpcyBmcmFtZSBpcyBkZXRh
Y2hlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgZG93bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBVUkwKICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTM2Ci0gICAgYXV0byBtYXliZUNvbnRl
eHQgPSBQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6dHJ5Q3JlYXRlKGRvY3VtZW50LCBTY3JpcHRT
b3VyY2VDb2RlKG1vZHVsZVVSTCkpOworICAgIGF1dG8gbWF5YmVDb250ZXh0ID0gUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGU6OnRyeUNyZWF0ZSgqZG9jdW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUobW9k
dWxlVVJMKSk7CiAgICAgaWYgKFVOTElLRUxZKCFtYXliZUNvbnRleHQpKSB7CiAgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE91dE9mTWVtb3J5RXJyb3IgfSk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTcwLDkgKzc4LDE1IEBAIHZvaWQgUGFpbnRXb3JrbGV0OjphZGRNb2R1bGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xlCiAKICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKGNvbnRleHQtPnBhaW50RGVmaW5pdGlvbkxvY2soKSk7CiAg
ICAgZm9yIChhdXRvJiBuYW1lIDogY29udGV4dC0+cGFpbnREZWZpbml0aW9uTWFwKCkua2V5cygp
KQotICAgICAgICBkb2N1bWVudC5zZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFt
ZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CisgICAgICAgIGRvY3VtZW50LT5zZXRQYWludFdv
cmtsZXRHbG9iYWxTY29wZUZvck5hbWUobmFtZSwgbWFrZVJlZihjb250ZXh0LmdldCgpKSk7CiAg
ICAgcHJvbWlzZS5yZXNvbHZlKCk7CiB9CiAKK1ZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3Bl
UHJveHk+PiBQYWludFdvcmtsZXQ6OmNyZWF0ZUdsb2JhbFNjb3BlcygpCit7CisgICAgLy8gRklY
TUU6IEFkZCBpbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NQYWludFdvcmtsZXQuaAppbmRleCBiOWIxMzg1YmIwOGEz
ZjFjZWQ0ZWIyYjQyNDAzZGQxMDdlNWE4NGVlLi4wOTRhZTZjMTJmNzUxOTM4NWJhMWE2MmQ3YmIy
MDQ4MjIzZjJjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUGFpbnRX
b3JrbGV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1BhaW50V29ya2xldC5oCkBA
IC00MSwxNSArNDEsMjEgQEAgY2xhc3MgRE9NQ1NTTmFtZXNwYWNlOwogCiBjbGFzcyBQYWludFdv
cmtsZXQgZmluYWwgOiBwdWJsaWMgV29ya2xldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQ
YWludFdvcmtsZXQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxQYWludFdvcmtsZXQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQYWludFdvcmtsZXQpOworICAgICAgICBhdXRvIHdvcmtsZXQgPSBhZG9wdFJlZigqbmV3IFBh
aW50V29ya2xldChkb2N1bWVudCkpOworICAgICAgICB3b3JrbGV0LT5zdXNwZW5kSWZOZWVkZWQo
KTsKKyAgICAgICAgcmV0dXJuIHdvcmtsZXQ7CiAgICAgfQogCi0gICAgdm9pZCBhZGRNb2R1bGUo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1vZHVsZVVSTCwgV29ya2xldE9wdGlvbnMmJiwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIC8vIFdvcmtsZXQuCisgICAgdm9p
ZCBhZGRNb2R1bGUoY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmPFdvcmtsZXRH
bG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgZmluYWw7CiAKIHByaXZhdGU6
Ci0gICAgUGFpbnRXb3JrbGV0KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhaW50V29ya2xl
dChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogV29ya2xldChkb2N1bWVudCkKKyAgICB7
IH0KIH07CiAKIGNsYXNzIERPTUNTU1BhaW50V29ya2xldCBmaW5hbCA6IHB1YmxpYyBTdXBwbGVt
ZW50PERPTUNTU05hbWVzcGFjZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmFjZjNm
MThjYWRjNjg2YjMxZWMzYWQwNWJjNThhMDFiMGVmMzRhZS4uOGU5YjIxOTBmOGUyYjFhNzQ5ZDMz
ZmIzMmMxN2QwZTlmYmNkY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDM5LDcg
Kzg0MzksNyBAQCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERv
Y3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbgogUGFpbnRXb3JrbGV0JiBEb2N1bWVu
dDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKICAgICBpZiAoIW1fcGFpbnRXb3JrbGV0KQotICAg
ICAgICBtX3BhaW50V29ya2xldCA9IFBhaW50V29ya2xldDo6Y3JlYXRlKCk7CisgICAgICAgIG1f
cGFpbnRXb3JrbGV0ID0gUGFpbnRXb3JrbGV0OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAq
bV9wYWludFdvcmtsZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5
LmluCmluZGV4IDVkZTAxN2M4YjE1NzA0Yjg3ZjgxYzg1NGJiYzQ3NzA2MmJjZGExMmMuLjMwMTcx
MDA0NGZmMTNhMTRjMDIyOGRhMzg5MDJkM2U3ZDMzNzdjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNTUsNyArNTUsNyBAQCBXZWJHUFVEZXZpY2UgY29u
ZGl0aW9uYWw9V0VCR1BVCiBXZWJLaXRNZWRpYUtleVNlc3Npb24gY29uZGl0aW9uYWw9TEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQQogV2ViU29ja2V0CiBXb3JrZXIKLVdvcmtsZXRHbG9iYWxTY29wZSBj
b25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJCitXb3JrbGV0R2xvYmFsU2NvcGUKIFhNTEh0dHBS
ZXF1ZXN0CiBYTUxIdHRwUmVxdWVzdFVwbG9hZAogV2ViWFJMYXllciBjb25kaXRpb25hbD1XRUJY
UgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCmluZGV4IDQzZDU3NjUyOThj
MDY3OTJjNmRkY2U4NWM0MmEwYTNmNTc1YTg3ODMuLjk4NTIwNWRhYmFhYjhkYTM4NmY2NTY0ZDgw
OTZmZDI4NjU1YzFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlh
U3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgK
QEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IE5vd1BsYXlpbmdJbmZvOwogY2xhc3MgV0VCQ09SRV9F
WFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rl
c3RpbmF0aW9uKAorICAgIHZpcnR1YWwgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlv
RGVzdGluYXRpb24oCiAgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSA9IDA7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
RGVzdGluYXRpb24uaAppbmRleCBkZWI3NTdkYzQ1ZTU3ODU4NTIxN2ZkM2JlYzA3MTJiNjQ0ZDc1
Mzc0Li4xNjBjNjU3OGUxNWVkNWVhNzUyNWRjNzY4YmQ0ZWYzZmRjNzRmNGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCkBAIC0zMCw2
ICszMCw3IEBACiAjZGVmaW5lIEF1ZGlvRGVzdGluYXRpb25faAogCiAjaW5jbHVkZSA8bWVtb3J5
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCwxNiArNDEsMTYg
QEAgY2xhc3MgQXVkaW9JT0NhbGxiYWNrOwogLy8gVGhlIGF1ZGlvIGhhcmR3YXJlIHBlcmlvZGlj
YWxseSBjYWxscyB0aGUgQXVkaW9JT0NhbGxiYWNrIHJlbmRlcigpIG1ldGhvZCBhc2tpbmcgaXQg
dG8gcmVuZGVyL291dHB1dCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpby4KIC8vIEl0
IG9wdGlvbmFsbHkgd2lsbCBwYXNzIGluIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQgd2hlbiBpdCBj
YWxscyByZW5kZXIoKS4KIAotY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7CitjbGFzcyBBdWRpb0Rl
c3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvRGVzdGluYXRpb24+
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICAvLyBQYXNzIGlu
IChudW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBpZiBsaXZlL2xvY2FsIGF1ZGlvIGlucHV0IGlz
IGRlc2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZpYyBkZXZpY2UgaWRlbnRpZmljYXRpb24gaW5m
b3JtYXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcyBjYW4gYmUgcGFzc2VkIGluIHRo
ZSBpbnB1dERldmljZUlkLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJh
Y2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSk7CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uKCkgPSBkZWZhdWx0OwogCi0gICAg
dmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydChGdW5jdGlv
bjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1BsYXlp
bmcoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDc0YWQ2MTZmYTllMjVk
ZWI5OTljOTZiNjY3ZWQxNDk0NzBiZjY4NzIuLmRhNGU0YjJjOGI2MDczNDgzZjlmYWRjNjdiYWZi
ZmZmODY4NWY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtNDEsNyArNDEsNyBA
QCBjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRyOwogCi1zdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSkKK1JlZjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKQogewogICAgIC8vIEZJWE1FOiBtYWtlIHVzZSBvZiBpbnB1dERldmljZUlkIGFzIGFwcHJv
cHJpYXRlLgogCkBAIC01NSw3ICs1NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsCiAgICAg
aWYgKEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUpCiAgICAgICAgIHJldHVy
biBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlKGNhbGxiYWNrLCBzYW1wbGVS
YXRlKTsKIAotICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlVW5pcXVlPEF1ZGlvRGVzdGluYXRp
b25Db2NvYT4oY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwor
ICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdFJlZigqbmV3IEF1ZGlvRGVzdGluYXRpb25Db2Nv
YShjYWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOwogICAgIGRl
c3RpbmF0aW9uLT5jb25maWd1cmUoKTsKICAgICByZXR1cm4gZGVzdGluYXRpb247CiB9CkBAIC0x
MDMsOSArMTAzLDEwIEBAIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6ZnJhbWVzUGVy
QnVmZmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJCdXMtPmxlbmd0aCgpOwogfQogCi12
b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoKQordm9pZCBBdWRpb0Rlc3RpbmF0aW9u
Q29jb2E6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRj
aFRvUmVuZGVyVGhyZWFkKQogewogICAgIExPRyhNZWRpYSwgIkF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6c3RhcnQiKTsKKyAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQgPSBXVEZNb3ZlKGRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWQpOwogICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5p
dFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAKICAgICBpZiAoIXJlc3VsdCkKQEAgLTExNiw2ICsxMTcs
NyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCgpCiB7CiAgICAgTE9HKE1lZGlh
LCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdG9wIik7CiAgICAgT1NTdGF0dXMgcmVzdWx0ID0g
QXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIG1fZGlzcGF0Y2hUb1JlbmRl
clRocmVhZCA9IG51bGxwdHI7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgc2V0SXNQbGF5
aW5nKGZhbHNlKTsKQEAgLTEyMyw2ICsxMjUsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6c3RvcCgpCiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzZXRJc1BsYXlpbmcoYm9v
bCBpc1BsYXlpbmcpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2lzUGxheWluZ0xv
Y2spOwogICAgIGlmIChtX2lzUGxheWluZyA9PSBpc1BsYXlpbmcpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTczLDE4ICsxNzYsMzggQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpy
ZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUludDMyIG4KIAogICAgIC8v
IEFzc29jaWF0ZSB0aGUgZGVzdGluYXRpb24gZGF0YSBhcnJheSB3aXRoIHRoZSBvdXRwdXQgYnVz
IHRoZW4gZmlsbCB0aGUgRklGTy4KICAgICBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1cyhidWZmZXJz
LCBtX291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBudW1iZXJPZkZyYW1lcywgMCwg
bnVtYmVyT2ZGcmFtZXMpOwotICAgIHNpemVfdCBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVs
bChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIHNpemVfdCBmcmFtZXNU
b1JlbmRlcjsKIAorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2ZpZm9M
b2NrKTsKKyAgICAgICAgZnJhbWVzVG9SZW5kZXIgPSBtX2ZpZm8tPnB1bGwobV9vdXRwdXRCdXMu
cHRyKCksIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICAvLyBXaGVuIHRoZXJlIGlzIGEg
QXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZC4K
KyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFt
ZXNUb1JlbmRlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtX2lzUGxheWluZ0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgICAgICAgICAg
aWYgKGxvY2sub3duc19sb2NrKCkgJiYgbV9pc1BsYXlpbmcpCisgICAgICAgICAgICAgICAgcmVu
ZGVyT25SZW5kZXJpbmdUaGVhZChmcmFtZXNUb1JlbmRlcik7CisgICAgICAgIH0pOworICAgIH0g
ZWxzZQorICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKwor
ICAgIHJldHVybiBub0VycjsKK30KKworLy8gVGhpcyBydW5zIG9uIHRoZSBBdWRpb1dvcmtsZXRU
aHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwgb24gdGhlIGF1ZGlvIGRldmljZSdz
IHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgordm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OnJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVuZGVyKQorewogICAgIGZv
ciAoc2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8IGZyYW1lc1RvUmVuZGVy
OyBwdXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKSB7CiAg
ICAgICAgIGlmIChtX3Jlc2FtcGxlcikKICAgICAgICAgICAgIG1fcmVzYW1wbGVyLT5wcm9jZXNz
KHRoaXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3Jl
bmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBtX291dHB1
dFRpbWVzdGFtcCk7CiAKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2ZpZm9Mb2Nr
KTsKICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0cigpKTsKICAgICB9Ci0KLSAg
ICByZXR1cm4gbm9FcnI7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5oCmluZGV4IDAwZGRhMmZiMmEzN2I4M2YxMGVmYTUyNzFiMTc2OGE4MGI0
ODExZWMuLjA4OTRkNjIxYTJmMTUzMjI1MTI3MzY1MGI2ZTVhM2QzZWM5OTZmOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEF1ZGlvQnVzOwogY2xhc3Mg
TXVsdGlDaGFubmVsUmVzYW1wbGVyOwogY2xhc3MgUHVzaFB1bGxGSUZPOwogCi11c2luZyBDcmVh
dGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVycmlkZSA9IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsKK3VzaW5n
IENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlID0gUmVmPEF1ZGlvRGVzdGluYXRp
b24+KCopKEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAvLyBBbiBBdWRp
b0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVBdWRpbydzIGRlZmF1bHQgb3V0cHV0IEF1ZGlvVW5pdAog
Y2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNvY29hIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb24sIHB1
YmxpYyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKQEAgLTY1LDExICs2NSwxNSBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIHNldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24mKTsKIAorICAgIEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYm
KT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnQo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgp
PiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKLSAgICBmcmll
bmQgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQs
IGZsb2F0KTsKKyAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1Rv
UmVuZGVyKTsKKworICAgIGZyaWVuZCBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5h
dGlvbjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1
bnNpZ25lZCwgZmxvYXQpOwogICAgIAogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIuCiAgICAg
dm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBmaW5h
bDsKQEAgLTkxLDExICs5NSwxNCBAQCBwcml2YXRlOgogICAgIC8vIFJlc29sdmVzIHRoZSBidWZm
ZXIgc2l6ZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBXZWJBdWRpbyBlbmdpbmUgYW5kCiAgICAgLy8g
dGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZyb20gdGhlIGFjdHVhbCBhdWRpbyBkZXZpY2UuCiAgICAg
VW5pcXVlUmVmPFB1c2hQdWxsRklGTz4gbV9maWZvOworICAgIExvY2sgbV9maWZvTG9jazsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+IG1fcmVzYW1wbGVyOwog
ICAgIEF1ZGlvSU9Qb3NpdGlvbiBtX291dHB1dFRpbWVzdGFtcDsKIAogICAgIGZsb2F0IG1fY29u
dGV4dFNhbXBsZVJhdGU7CisKKyAgICBMb2NrIG1faXNQbGF5aW5nTG9jazsKICAgICBib29sIG1f
aXNQbGF5aW5nIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyLmNwcAppbmRleCA4ZmRlYjZhMjQyNDg0OWNhYzE3YmJlOTBhYWU3MTJhODlhMjRkMTAw
Li5jMDVhZTZiZTYyOWRkYjNkZjY3MjI4MjkxMTFjZThiNjQwMGVlNjhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyB2
b2lkIGF1dG9BdWRpb1NpbmtDaGlsZEFkZGVkQ2FsbGJhY2soR3N0Q2hpbGRQcm94eSosIEdPYmpl
Y3QqIG9iamVjdCwgZ2NoCiAgICAgICAgIGdfb2JqZWN0X3NldChHU1RfQVVESU9fQkFTRV9TSU5L
KG9iamVjdCksICJidWZmZXItdGltZSIsIHN0YXRpY19jYXN0PGdpbnQ2ND4oMTAwMDAwKSwgbnVs
bHB0cik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3Rp
bmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVz
dGluYXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcm
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IG1ha2UgdXNlIG9m
IGlucHV0RGV2aWNlSWQgYXMgYXBwcm9wcmlhdGUuCiAKQEAgLTYwLDcgKzYwLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShBdWRp
b0lPQ2FsbGJhY2smIGNhbGwKICAgICBpZiAobnVtYmVyT2ZPdXRwdXRDaGFubmVscyAhPSAyKQog
ICAgICAgICBMT0coTWVkaWEsICJBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoJXUsICV1LCAlZikg
LSB1bmhhbmRsZWQgb3V0cHV0IGNoYW5uZWxzIiwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVl
PEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI+KGNhbGxiYWNrLCBzYW1wbGVSYXRlKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKGNhbGxiYWNrLCBz
YW1wbGVSYXRlKSk7CiB9CiAKIGZsb2F0IEF1ZGlvRGVzdGluYXRpb246OmhhcmR3YXJlU2FtcGxl
UmF0ZSgpCkBAIC0xNjUsNyArMTY1LDcgQEAgZ2Jvb2xlYW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIHJldHVybiBUUlVF
OwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KCkKK3ZvaWQgQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lk
KCk+JiYpPiYmKQogewogICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2YWlsYWJsZSk7CiAgICAgaWYg
KCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5oCmluZGV4IGNmZTY4OTIwOGQwOTY4YTUxYThiYjFkMWU4N2Y2ZTE5ZDBmMjMxNjYuLmQ1NTEw
NGM4OGNjYmNkZmZmZjk3YzRlN2E0OTQ5ODZmOTk2YmY4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXIuaApAQCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6CiAgICAgQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBzYW1wbGVSYXRlKTsK
ICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKCk7CiAKLSAgICB2b2lkIHN0
YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZv
aWQoKT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJu
IG1faXNQbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCA5ZGFhN2QwMTQxZDgxMDRl
NGY1YzRjMjY0OGJjOGM2YmU1MjZjMGM4Li41YTEyY2RlNGZjZGZjNTdmYWQ0MmI3ZDllOGZlNzMy
MDQzNTA5ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTQ1LDggKzQ1LDkgQEAgTW9ja0F1
ZGlvRGVzdGluYXRpb25Db2NvYTo6TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYShBdWRpb0lPQ2Fs
bGJhY2smIGNhbGxiYWNrLAogCiBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hOjp+TW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYSgpID0gZGVmYXVsdDsKIAotdm9pZCBNb2NrQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpzdGFydCgpCit2b2lkIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0YXJ0KEZ1
bmN0aW9uPHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KQogeworICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCA9IFdURk1vdmUoZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZCk7CiAgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhTZWNvbmRzIHsgbV9udW1i
ZXJPZkZyYW1lc1RvUHJvY2VzcyAvIHNhbXBsZVJhdGUoKSB9KTsKICAgICBzZXRJc1BsYXlpbmco
dHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGQ0ZWFlODMzNDM1YzBhNjA0NTVlZDBiOTY5
MjU2OGM4ZWM2M2YzNmQuLmE4ZDI4YzRlZDFiYmVmZmQzMzA5NDUwZGFhZjMyOWViYTI1MzRjMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oCkBAIC0zOCwxMiArMzgsMTYgQEAgY2xhc3MgQXVkaW9JT0NhbGxi
YWNrOwogY2xhc3MgTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSBmaW5hbCA6IHB1YmxpYyBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1
ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpIHsgcmV0dXJuIG1ha2VV
bmlxdWU8TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYT4oY2FsbGJhY2ssIHNhbXBsZVJhdGUpOyB9
CisgICAgc3RhdGljIFJlZjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNr
JiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJhY2ssIHNhbXBsZVJhdGUp
KTsKKyAgICB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
KEF1ZGlvSU9DYWxsYmFjayYsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgfk1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoKTsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9u
PHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCiAgICAgdm9p
ZCB0aWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50
TG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5jcHAKaW5k
ZXggN2RhY2MwZGE0MTQwYjMxYTdmZTRkZDY1MDliOTQ2MzljZjU1NDhkZS4uYTRlN2RmZmY4Mjli
Yzc5Nzc0MzgwMmZmMjBmMWY0NTg2ZDM1NDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJFdmVudExvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyRXZlbnRMb29wLmNwcApAQCAtMzcsMTIgKzM3LDEwIEBAIFJlZjxXb3JrZXJFdmVudExv
b3A+IFdvcmtlckV2ZW50TG9vcDo6Y3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KQog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlckV2ZW50TG9vcChjb250ZXh0KSk7CiB9CiAK
LSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKIFJlZjxXb3JrZXJFdmVudExvb3A+IFdvcmtl
ckV2ZW50TG9vcDo6Y3JlYXRlKFdvcmtsZXRHbG9iYWxTY29wZSYgY29udGV4dCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJFdmVudExvb3AoY29udGV4dCkpOwogfQotI2VuZGlm
CiAKIFdvcmtlckV2ZW50TG9vcDo6V29ya2VyRXZlbnRMb29wKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5oCmluZGV4IGRjNGY0MDQ1MmRj
N2UyOTA2ODQ5YzA1ZjY1YWMzYzc3NDQ0ZDcxZmYuLjFjZDBlY2I2YTJmMzBlNjY4MzdlZGY3M2Y3
YjQyYzE5Mjg0OTA2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
RXZlbnRMb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3Au
aApAQCAtMzcsMTAgKzM3LDcgQEAgY2xhc3MgV29ya2VyRXZlbnRMb29wIGZpbmFsIDogcHVibGlj
IEV2ZW50TG9vcCwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnYKIHB1YmxpYzoKICAg
ICAvLyBFeHBsaWNpdGx5IHRha2UgV29ya2VyR2xvYmFsU2NvcGUgYW5kIFdvcmtsZXRHbG9iYWxT
Y29wZSBmb3IgZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy4KICAgICBzdGF0aWMgUmVmPFdvcmtlckV2
ZW50TG9vcD4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJik7Ci0KLSNpZiBFTkFCTEUoQ1NTX1BB
SU5USU5HX0FQSSkKICAgICBzdGF0aWMgUmVmPFdvcmtlckV2ZW50TG9vcD4gY3JlYXRlKFdvcmts
ZXRHbG9iYWxTY29wZSYpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIH5Xb3JrZXJFdmVudExvb3Ao
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRl
eCBiMmYzMzEyY2Y0YjA0NjFiODdmYWFhYzM5Y2Q0MmEwNjNlNThhYzczLi4xZmU5Mzk4N2VmOTYx
ZmRmYmUzOGY0N2NhNjcxYWY1ZmRhOThkOWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTQ0LDQgKzU0NCw5IEBAIFJlZmVycmVyUG9saWN5
IFdvcmtlckdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cmVmZXJyZXJQb2xpY3k7CiB9CiAKK1RocmVhZCogV29ya2VyR2xvYmFsU2NvcGU6OnVuZGVybHlp
bmdUaHJlYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZC50aHJlYWQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IGJkOWNmMTQwZGQ1MmZiODQ5OGI5ZmE0MTA2MGM5M2FiZmE2ODM4NWUu
LjkwZGYzYjZhZjNkNjNlYzYxYWVjOWExMjNjMDg3N2U3OWUzNGIyNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgIldvcmtlckNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNz
IElEQkNvbm5lY3Rpb25Qcm94eTsKIH0KIAotY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJs
aWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxX
b3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMg
RXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEJhc2U2NFV0aWxpdGllcyB7CitjbGFz
cyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckdsb2JhbFNjb3Bl
PiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBCYXNlNjRVdGlsaXRpZXMsIHB1YmxpYyBXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3Jr
ZXJHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGUo
KTsKQEAgLTg1LDEzICs4NiwxNSBAQCBwdWJsaWM6CiAgICAgV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uJiBzd0NsaWVudENvbm5lY3Rpb24oKTsKICNlbmRpZgogCi0gICAgV29ya2VyU2NyaXB0Q29u
dHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSBmaW5hbCB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsg
fQogICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0cjsgfQogCiAgICAg
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsg
cmV0dXJuICptX2luc3BlY3RvckNvbnRyb2xsZXI7IH0KIAogICAgIFdvcmtlclRocmVhZCYgdGhy
ZWFkKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWQ7IH0KIAorICAgIFRocmVhZCogdW5kZXJseWlu
Z1RocmVhZCgpIGNvbnN0IGZpbmFsOworCiAgICAgdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6aGFzUGVuZGluZ0FjdGl2aXR5OwogCiAgICAgdm9pZCBwb3N0VGFzayhUYXNrJiYpIGZpbmFs
OyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5
LgpAQCAtMTE5LDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7
CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBib29sIGlzQ2xvc2luZygpIHsg
cmV0dXJuIG1fY2xvc2luZzsgfQorICAgIGJvb2wgaXNDbG9zaW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jbG9zaW5nOyB9CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5p
cXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPiYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY1NDhlMDg0OGJlMzUyMmI2YWQ5YzMyODUzMzk3NDZjN2MzOTc0MjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKKwor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBUaHJlYWQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIFdURjo6VGhyZWFkKiB1bmRlcmx5aW5n
VGhyZWFkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQo
KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZmOWJmODNlOTMwZGQxNjVkOGEzMzA0NzA1MmFkNTVkMjJmYWZhNzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZv
aWQgcmVsZWFzZUhlYXBBY2Nlc3MoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFjcXVpcmVIZWFw
QWNjZXNzKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGFkZFRpbWVyU2V0Tm90aWZpY2F0aW9u
KEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2spID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGltZXJTZXROb3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BU
aW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaykgPSAwOworCisgICAgdmlydHVhbCBib29s
IGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSBjb25zdCA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxv
b3AuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAppbmRleCA2
NmVjZDUzNmY4MTNkMDI5YzQ5N2YxYWVhN2YyMTllZGZjNzViMzc1Li5iYjYxZmM1ZjJhOTdkYjg0
YjExM2JlMjIzYzdhN2FkYzcxOWI0OTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclJ1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
UnVuTG9vcC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRh
LmgiCiAjaW5jbHVkZSAiVGhyZWFkVGltZXJzLmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5o
IgotI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogI2lmIFVTRShH
TElCKQpAQCAtMTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgSXNGb3JEZWJ1Z2dpbmcgbV9p
c0ZvckRlYnVnZ2luZyB7IElzRm9yRGVidWdnaW5nOjpObyB9OwogfTsKIAotdm9pZCBXb3JrZXJS
dW5Mb29wOjpydW4oV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCit2b2lkIFdvcmtlclJ1bkxv
b3A6OnJ1bihXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBSdW5M
b29wU2V0dXAgc2V0dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Ok5vKTsK
ICAgICBNb2RlUHJlZGljYXRlIG1vZGVQcmVkaWNhdGUoZGVmYXVsdE1vZGUoKSk7CkBAIC0xNDMs
MTMgKzE0MywxMyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJHbG9iYWxTY29wZSog
Y29udGV4dCkKICAgICBydW5DbGVhbnVwVGFza3MoY29udGV4dCk7CiB9CiAKLU1lc3NhZ2VRdWV1
ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5EZWJ1Z2dlck1vZGUoV29ya2VyR2xvYmFs
U2NvcGUmIGNvbnRleHQpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1
bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJiBjb250ZXh0KQogewog
ICAgIFJ1bkxvb3BTZXR1cCBzZXR1cCgqdGhpcywgUnVuTG9vcFNldHVwOjpJc0ZvckRlYnVnZ2lu
Zzo6WWVzKTsKICAgICByZXR1cm4gcnVuSW5Nb2RlKCZjb250ZXh0LCBNb2RlUHJlZGljYXRlIHsg
ZGVidWdnZXJNb2RlKCkgfSwgV2FpdEZvck1lc3NhZ2UpOwogfQogCi1NZXNzYWdlUXVldWVXYWl0
UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBtb2RlLCBXYWl0TW9kZSB3YWl0TW9kZSkKK01lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1vZGUsIFdhaXRNb2RlIHdhaXRNb2RlKQogewog
ICAgIEFTU0VSVChtb2RlICE9IGRlYnVnZ2VyTW9kZSgpKTsKICAgICBSdW5Mb29wU2V0dXAgc2V0
dXAoKnRoaXMsIFJ1bkxvb3BTZXR1cDo6SXNGb3JEZWJ1Z2dpbmc6Ok5vKTsKQEAgLTE1OCwxMCAr
MTU4LDEwIEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2Rl
KFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0LCBjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUoV29ya2Vy
R2xvYmFsU2NvcGUqIGNvbnRleHQsIGNvbnN0IE1vZGVQcmVkaWNhdGUmIHByZWRpY2F0ZSwgV2Fp
dE1vZGUgd2FpdE1vZGUpCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlclJ1bkxvb3A6OnJ1
bkluTW9kZShXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogY29udGV4dCwgY29uc3QgTW9kZVBy
ZWRpY2F0ZSYgcHJlZGljYXRlLCBXYWl0TW9kZSB3YWl0TW9kZSkKIHsKICAgICBBU1NFUlQoY29u
dGV4dCk7Ci0gICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6
OmN1cnJlbnQoKSk7CisgICAgQVNTRVJUKGNvbnRleHQtPnVuZGVybHlpbmdUaHJlYWQoKSA9PSAm
VGhyZWFkOjpjdXJyZW50KCkpOwogCiAgICAgSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3Rp
ZmljYXRpb25DYWxsYmFjayB0aW1lckFkZGVkVGFzayA9IFdURjo6Y3JlYXRlU2hhcmVkVGFzazxK
U0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1lck5vdGlmaWNhdGlvblR5cGU+KFt0aGlzXSB7CiAgICAg
ICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIGhlcmUsIHdlIGp1c3Qgd2FudCB0
byBsb29wIGFyb3VuZCBydW5Jbk1vZGUKQEAgLTE4NiwxMyArMTg2LDEzIEBAIE1lc3NhZ2VRdWV1
ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiBj
b250ZXh0LCBjb25zCiAgICAgaWYgKHdhaXRNb2RlID09IFdhaXRGb3JNZXNzYWdlICYmIHByZWRp
Y2F0ZS5pc0RlZmF1bHRNb2RlKCkgJiYgbV9zaGFyZWRUaW1lci0+aXNBY3RpdmUoKSkKICAgICAg
ICAgdGltZW91dERlbGF5ID0gc3RkOjptaW4odGltZW91dERlbGF5LCBtX3NoYXJlZFRpbWVyLT5m
aXJlVGltZURlbGF5KCkpOwogCi0gICAgaWYgKFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dCA9IGNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGNvbnRleHQt
PnNjcmlwdCgpKSB7CiAgICAgICAgIHNjcmlwdC0+cmVsZWFzZUhlYXBBY2Nlc3MoKTsKICAgICAg
ICAgc2NyaXB0LT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbih0aW1lckFkZGVkVGFzayk7CiAgICAg
fQogICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0OwogICAgIGF1dG8gdGFzayA9IG1f
bWVzc2FnZVF1ZXVlLndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dChyZXN1bHQsIHBy
ZWRpY2F0ZSwgdGltZW91dERlbGF5KTsKLSAgICBpZiAoV29ya2VyU2NyaXB0Q29udHJvbGxlciog
c2NyaXB0ID0gY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICBpZiAoYXV0byogc2NyaXB0ID0gY29u
dGV4dC0+c2NyaXB0KCkpIHsKICAgICAgICAgc2NyaXB0LT5hY3F1aXJlSGVhcEFjY2VzcygpOwog
ICAgICAgICBzY3JpcHQtPnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKHRpbWVyQWRkZWRUYXNr
KTsKICAgICB9CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdv
cmtlclJ1bkxvb3A6OnJ1bkluTW9kZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCwgY29ucwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6cnVuQ2xlYW51cFRh
c2tzKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQordm9pZCBXb3JrZXJSdW5Mb29wOjpydW5D
bGVhbnVwVGFza3MoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAg
QVNTRVJUKGNvbnRleHQpOwotICAgIEFTU0VSVChjb250ZXh0LT50aHJlYWQoKS50aHJlYWQoKSA9
PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0LT51bmRlcmx5aW5nVGhy
ZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKICAgICBBU1NFUlQobV9tZXNzYWdlUXVldWUu
a2lsbGVkKCkpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lk
IFdvcmtlclJ1bkxvb3A6OnBvc3REZWJ1Z2dlclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzayYmIHRhc2spCiAgICAgcG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayksIGRlYnVnZ2Vy
TW9kZSgpKTsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhXb3Jr
ZXJHbG9iYWxTY29wZSogY29udGV4dCkKK3ZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9y
bVRhc2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGNvbnRleHQpCiB7CiAgICAgaWYgKCgh
Y29udGV4dC0+aXNDbG9zaW5nKCkgJiYgY29udGV4dC0+c2NyaXB0KCkgJiYgIWNvbnRleHQtPnNj
cmlwdCgpLT5pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkpIHx8IG1fdGFzay5pc0NsZWFudXBUYXNr
KCkpCiAgICAgICAgIG1fdGFzay5wZXJmb3JtVGFzaygqY29udGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5oCmluZGV4IGE4YzlkZWJkODBkODA5OTU0YTdhOWQ2OTBmNzc0
MDZkMjUyODI2NjguLmVlMjZiMzdmMjk5Y2E2OTljMDRjMGIxYzc0NDE1MDQ4MDg3MTU3ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCkBAIC0zOCw3ICszOCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBNb2RlUHJlZGljYXRlOwotICAgIGNsYXNz
IFdvcmtlckdsb2JhbFNjb3BlOworICAgIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
OwogICAgIGNsYXNzIFdvcmtlclNoYXJlZFRpbWVyOwogCiAgICAgY2xhc3MgV29ya2VyUnVuTG9v
cCB7CkBAIC00NywxMyArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+V29y
a2VyUnVuTG9vcCgpOwogICAgICAgICAKICAgICAgICAgLy8gQmxvY2tpbmcgY2FsbC4gV2FpdHMg
Zm9yIHRhc2tzIGFuZCB0aW1lcnMsIGludm9rZXMgdGhlIGNhbGxiYWNrcy4KLSAgICAgICAgdm9p
ZCBydW4oV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW4oV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICBlbnVtIFdhaXRNb2RlIHsgV2FpdEZvck1lc3Nh
Z2UsIERvbnRXYWl0Rm9yTWVzc2FnZSB9OwogCiAgICAgICAgIC8vIFdhaXRzIGZvciBhIHNpbmds
ZSB0YXNrIGFuZCByZXR1cm5zLgotICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJ1bklu
TW9kZShXb3JrZXJHbG9iYWxTY29wZSosIGNvbnN0IFN0cmluZyYgbW9kZSwgV2FpdE1vZGUgPSBX
YWl0Rm9yTWVzc2FnZSk7Ci0gICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5EZWJ1
Z2dlck1vZGUoV29ya2VyR2xvYmFsU2NvcGUmKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCBydW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBjb25zdCBTdHJpbmcm
IG1vZGUsIFdhaXRNb2RlID0gV2FpdEZvck1lc3NhZ2UpOworICAgICAgICBNZXNzYWdlUXVldWVX
YWl0UmVzdWx0IHJ1bkluRGVidWdnZXJNb2RlKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJik7
CiAKICAgICAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKICAgICAgICAgYm9vbCB0ZXJtaW5hdGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9tZXNzYWdlUXVldWUua2lsbGVkKCk7IH0KQEAgLTczLDcgKzczLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBtb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAKICAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAg
IHZvaWQgcGVyZm9ybVRhc2soV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAgICAgIHZvaWQg
cGVyZm9ybVRhc2soV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICAgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayBtX3Rhc2s7CiAgICAgICAgICAgICBTdHJpbmcg
bV9tb2RlOwpAQCAtODMsMTEgKzgzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wU2V0dXA7Ci0gICAgICAgIE1lc3Nh
Z2VRdWV1ZVdhaXRSZXN1bHQgcnVuSW5Nb2RlKFdvcmtlckdsb2JhbFNjb3BlKiwgY29uc3QgTW9k
ZVByZWRpY2F0ZSYsIFdhaXRNb2RlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBy
dW5Jbk1vZGUoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqLCBjb25zdCBNb2RlUHJlZGljYXRl
JiwgV2FpdE1vZGUpOwogCiAgICAgICAgIC8vIFJ1bnMgYW55IGNsZWFuIHVwIHRhc2tzIHRoYXQg
YXJlIGN1cnJlbnRseSBpbiB0aGUgcXVldWUgYW5kIHJldHVybnMuCiAgICAgICAgIC8vIFRoaXMg
c2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgY2xvc2VkIG9yIGxvb3Ag
aGFzIGJlZW4gdGVybWluYXRlZC4KLSAgICAgICAgdm9pZCBydW5DbGVhbnVwVGFza3MoV29ya2Vy
R2xvYmFsU2NvcGUqKTsKKyAgICAgICAgdm9pZCBydW5DbGVhbnVwVGFza3MoV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUqKTsKIAogICAgICAgICBib29sIGlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVidWdDb3VudCA+PSAxOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dC5jcHAKaW5kZXggM2Q2ZTBiN2FmMDFlMjE4NWUxYzlmZjlkYjA3ZmZkMzBlZGRkMjE3OC4uMzkw
OGJkZjNhMjk2YzgxYjZmNGJhOGU4ZTA4ZTNmYzU4MmVlNWUzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldC5jcHAKQEAgLTI4LDI3ICsyOCw3NiBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCi0jaW5jbHVkZSAiV29ya2xldE9wdGlv
bnMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxv
b3AuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrbGV0
R2xvYmFsU2NvcGVQcm94eS5oIgorI2luY2x1ZGUgIldvcmtsZXRQZW5kaW5nVGFza3MuaCIKKyNp
bmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChXb3JrbGV0KTsKIAotUmVmPFdvcmtsZXQ+IFdvcmtsZXQ6OmNyZWF0ZSgpCitXb3Jr
bGV0OjpXb3JrbGV0KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgm
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2xldCgpKTsKIH0KIAot
V29ya2xldDo6V29ya2xldCgpCitXb3JrbGV0Ojp+V29ya2xldCgpID0gZGVmYXVsdDsKKworRG9j
dW1lbnQqIFdvcmtsZXQ6OmRvY3VtZW50KCkKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1l
bnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKKy8vIGh0dHBzOi8vd3d3LnczLm9y
Zy9UUi93b3JrbGV0cy0xLyNkb20td29ya2xldC1hZGRtb2R1bGUKK3ZvaWQgV29ya2xldDo6YWRk
TW9kdWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMU3RyaW5nLCBXb3JrbGV0T3B0aW9ucyYmIG9w
dGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byog
ZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGlzIGZy
YW1lIGlzIGRldGFjaGVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVVJM
IG1vZHVsZVVSTCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChtb2R1bGVVUkxTdHJpbmcpOworICAg
IGlmICghbW9kdWxlVVJMLmlzVmFsaWQoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBTeW50YXhFcnJvciwgIk1vZHVsZSBVUkwgaXMgaW52YWxpZCJfcyB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3Byb3hpZXMuaXNFbXB0eSgpKQorICAgICAg
ICBtX3Byb3hpZXMuYXBwZW5kVmVjdG9yKGNyZWF0ZUdsb2JhbFNjb3BlcygpKTsKKworICAgIGF1
dG8gcGVuZGluZ1Rhc2tzID0gV29ya2xldFBlbmRpbmdUYXNrczo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKHByb21pc2UpLCBtX3Byb3hpZXMuc2l6ZSgpKTsKKyAgICBtX3BlbmRpbmdUYXNrc1NldC5h
ZGQocGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSk7CisKKyAgICBmb3IgKGF1dG8mIHByb3h5IDogbV9w
cm94aWVzKSB7CisgICAgICAgIHByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtsZXRHbG9iYWxT
Y29wZShbcGVuZGluZ1Rhc2tzID0gcGVuZGluZ1Rhc2tzLmNvcHlSZWYoKSwgbW9kdWxlVVJMID0g
bW9kdWxlVVJMLmlzb2xhdGVkQ29weSgpLCBjcmVkZW50aWFscyA9IG9wdGlvbnMuY3JlZGVudGlh
bHMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRvd25jYXN0
PFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkuZmV0Y2hBbmRJbnZva2VTY3JpcHQobW9kdWxl
VVJMLCBjcmVkZW50aWFscywgW3BlbmRpbmdUYXNrcyA9IFdURk1vdmUocGVuZGluZ1Rhc2tzKSwg
cGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXShPcHRpb25hbDxFeGNl
cHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFtwZW5kaW5nVGFza3MgPSBXVEZNb3ZlKHBlbmRpbmdUYXNrcyksIGV4Y2VwdGlvbiA9
IGNyb3NzVGhyZWFkQ29weShleGNlcHRpb24pLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBl
bmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleGNl
cHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3MtPmFib3J0KFdURk1v
dmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICBwZW5kaW5nVGFza3MtPmRlY3JlbWVudENvdW50ZXIoKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZh
dWx0TW9kZSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2xldDo6ZmluaXNoUGVuZGluZ1Rhc2tz
KFdvcmtsZXRQZW5kaW5nVGFza3MmIHRhc2tzKQogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ1Rhc2tzU2V0LmNvbnRhaW5zKCZ0YXNrcykpOworCisg
ICAgbV9wZW5kaW5nVGFza3NTZXQucmVtb3ZlKCZ0YXNrcyk7CiB9CiAKLXZvaWQgV29ya2xldDo6
YWRkTW9kdWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRp
b25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCitjb25zdCBjaGFyKiBX
b3JrbGV0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogQWRk
IHByb3BlciBpbXBsZW1lbnRhdGlvbi4KLSAgICBVTlVTRURfUEFSQU0obW9kdWxlVVJMKTsKLSAg
ICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICByZXR1cm4gIldvcmtsZXQiOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmgKaW5kZXggYjJiZWRjNjU4
NjViNzRmNWY5OTU2ZjA0Y2ZjY2MzZjgzNTE5ZjJlMS4uNDE2ODY3NGM3M2IyOTkwOWJhNjI5NjI1
NzIxYjM4MDUzZTIyN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXQuaApAQCAtMjUsMjcg
KzI1LDQ1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Pci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiV29ya2xldE9wdGlvbnMuaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZVByb3h5OworY2xhc3MgV29ya2xldFBlbmRpbmdUYXNr
czsKIAotc3RydWN0IFdvcmtsZXRPcHRpb25zOwotCi1jbGFzcyBXb3JrbGV0IDogcHVibGljIFJl
ZkNvdW50ZWQ8V29ya2xldD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworY2xhc3MgV29ya2xl
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXQ+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8V29ya2xldD4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2xldCk7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxXb3JrbGV0PiBjcmVhdGUoKTsKLSAgICB2aXJ0dWFsIH5Xb3JrbGV0KCkgPSBkZWZhdWx0
OworICAgIHZpcnR1YWwgfldvcmtsZXQoKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTW9k
dWxlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVVUkwsIFdvcmtsZXRPcHRpb25zJiYs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTW9kdWxl
KGNvbnN0IFN0cmluZyYgbW9kdWxlVVJMLCBXb3JrbGV0T3B0aW9ucyYmLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIGZpbmlzaFBlbmRpbmdUYXNrcyhXb3JrbGV0UGVu
ZGluZ1Rhc2tzJik7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CisKKyAgICBjb25zdCBWZWN0
b3I8UmVmPFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4mIHByb3hpZXMoKSBjb25zdCB7IHJldHVy
biBtX3Byb3hpZXM7IH0KIAogcHJvdGVjdGVkOgotICAgIFdvcmtsZXQoKTsKKyAgICBleHBsaWNp
dCBXb3JrbGV0KERvY3VtZW50Jik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBWZWN0b3I8UmVm
PFdvcmtsZXRHbG9iYWxTY29wZVByb3h5Pj4gY3JlYXRlR2xvYmFsU2NvcGVzKCkgPSAwOworCisg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8V29ya2xldEdsb2JhbFNjb3BlUHJv
eHk+PiBtX3Byb3hpZXM7CisgICAgSGFzaFNldDxSZWZQdHI8V29ya2xldFBlbmRpbmdUYXNrcz4+
IG1fcGVuZGluZ1Rhc2tzU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0LmlkbAppbmRleCAwYjc3NGMyNzRhYWYyMGUwY2M4ODM3NzI3MWM3
MTZhMDBmYWY5ZTYxLi4yOTNjZjA2ZTE1NTZlOWI1NzdhMmE0ZDE5NTg4ZDE2ODA2YWJlZTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0LmlkbApAQCAtMjQsOCArMjQsMTAgQEAKICovCiAK
IFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAgICAgRXhwb3NlZD1XaW5kb3csCisgICAgR2xvYmFs
PVdvcmtsZXQsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0gaW50ZXJmYWNlIFdvcmtsZXQg
ewotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTx1bmRlZmluZWQ+IGFkZE1vZHVsZShV
U1ZTdHJpbmcgbW9kdWxlVVJMLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9ucyBvcHRpb25zKTsKKyAg
ICBQcm9taXNlPHVuZGVmaW5lZD4gYWRkTW9kdWxlKFVTVlN0cmluZyBtb2R1bGVVUkwsIG9wdGlv
bmFsIFdvcmtsZXRPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcAppbmRleCA0ZTUxN2EwMWE3MzQ3M2IwYmQ0
NTlmOWQ1MGNkZTIyOGE4MDc2OWQwLi5mZGY1NTBmNDQ5OTJkOWU2MDQzMWU3ZDIzZmRmYjM5ZDFk
MGU5M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29s
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVD
bGllbnQuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV29ya2xldENvbnNvbGVDbGllbnQuaCIKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQotCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
Y3JpcHRBcmd1bWVudHMuaD4KQEAgLTcxLDQgKzY5LDMgQEAgdm9pZCBXb3JrbGV0Q29uc29sZUNs
aWVudDo6cmVjb3JkRW5kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRz
PiYKIHZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OnNjcmVlbnNob3QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIHsgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRD
b25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNs
aWVudC5oCmluZGV4IGZiM2QwMWRhYzY5ODhkMDAyMjVhNmRmZGRkZTU5M2NkNzE5ODU4ODQuLjEy
YmI0OWE1ZGFmYjhhZjNjM2NkOTk2N2Y2ZjBiYTFkYzNiNTUzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuaApAQCAtMjUsOCArMjUsNiBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotCiAjaW5jbHVk
ZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZUNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC02Miw0ICs2MCwzIEBAIHBy
aXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDNiNzU4MmFmZmNk
MDRiMTQ2MjkwZjNhNzQ2ODY3MzRhYzY5MGZlZjIuLjFkZjNiMjk3NzBmN2Y5MWVlZjFlNjZiMjUw
OTcwYzMxZjJiNDNmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEds
b2JhbFNjb3BlLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19B
UEkpCi0KICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlLmgiCkBAIC0zNiw3ICszNCw3
IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgotI2luY2x1ZGUgIldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV29ya2xldFBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAg
LTQ3LDIxICs0NSwzNCBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoV29ya2xldEdsb2JhbFNjb3BlKTsKIAorV29ya2xldEdsb2JhbFNj
b3BlOjpXb3JrbGV0R2xvYmFsU2NvcGUoY29uc3QgV29ya2xldFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCisgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtsZXRTY3JpcHRDb250cm9sbGVyPih0
aGlzKSkKKyAgICAsIG1fdG9wT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSkK
KyAgICAsIG1fdXJsKHBhcmFtZXRlcnMud2luZG93VVJMKQorICAgICwgbV9qc1J1bnRpbWVGbGFn
cyhwYXJhbWV0ZXJzLmpzUnVudGltZUZsYWdzKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxs
V29ya2xldEdsb2JhbFNjb3Blc1NldCgpLmFkZCh0aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFk
ZFJlc3VsdCwgYWRkUmVzdWx0KTsKKworICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3Vy
aXR5T3JpZ2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7CisgICAgc2V0
Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihV
UkwgeyB0aGlzLT51cmwoKSB9LCAqdGhpcykpOworfQorCiBXb3JrbGV0R2xvYmFsU2NvcGU6Oldv
cmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxKU0M6OlZNPiYmIHZtLCBT
Y3JpcHRTb3VyY2VDb2RlJiYgY29kZSkKICAgICA6IG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9j
dW1lbnQpKQogICAgICwgbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cj4oV1RGTW92ZSh2bSksIHRoaXMpKQogICAgICwgbV90b3BPcmlnaW4oU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZVVuaXF1ZSgpKQorICAgICwgbV91cmwoY29kZS51cmwoKSkKKyAgICAsIG1fanNSdW50
aW1lRmxhZ3MoZG9jdW1lbnQuc2V0dGluZ3MoKS5qYXZhU2NyaXB0UnVudGltZUZsYWdzKCkpCiAg
ICAgLCBtX2NvZGUoV1RGTW92ZShjb2RlKSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbFdv
cmtsZXRHbG9iYWxTY29wZXNTZXQoKS5hZGQodGhpcyk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRS
ZXN1bHQsIGFkZFJlc3VsdCk7CiAKLSAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7
Ci0gICAgbV9qc1J1bnRpbWVGbGFncyA9IGZyYW1lID8gZnJhbWUtPnNldHRpbmdzKCkuamF2YVNj
cmlwdFJ1bnRpbWVGbGFncygpIDogSlNDOjpSdW50aW1lRmxhZ3MoKTsKICAgICBBU1NFUlQoZG9j
dW1lbnQucGFnZSgpKTsKIAogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3Jp
Z2luUG9saWN5OjpjcmVhdGUobV90b3BPcmlnaW4uY29weVJlZigpKSk7Ci0gICAgc2V0Q29udGVu
dFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBt
X2NvZGUudXJsKCkgfSwgKnRoaXMpKTsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFr
ZVVuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IHRoaXMtPnVybCgpIH0sICp0aGlz
KSk7CiB9CiAKIFdvcmtsZXRHbG9iYWxTY29wZTo6fldvcmtsZXRHbG9iYWxTY29wZSgpCkBAIC0x
MTMsNyArMTI0LDggQEAgU3RyaW5nIFdvcmtsZXRHbG9iYWxTY29wZTo6dXNlckFnZW50KGNvbnN0
IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZXZhbHVhdGUoKQog
ewotICAgIG1fc2NyaXB0LT5ldmFsdWF0ZShtX2NvZGUpOworICAgIGlmIChtX2NvZGUpCisgICAg
ICAgIG1fc2NyaXB0LT5ldmFsdWF0ZSgqbV9jb2RlKTsKIH0KIAogYm9vbCBXb3JrbGV0R2xvYmFs
U2NvcGU6OmlzSlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdApAQCAtMTM1LDcgKzE0Nyw3IEBA
IFVSTCBXb3JrbGV0R2xvYmFsU2NvcGU6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBG
b3JjZVVURjgpIGNvbnN0CiB7CiAgICAgaWYgKHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IFVSTCgpOwotICAgIHJldHVybiBVUkwobV9jb2RlLnVybCgpLCB1cmwpOworICAgIHJldHVybiBV
UkwodGhpcy0+dXJsKCksIHVybCk7CiB9CiAKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpsb2dF
eGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4mJiBzdGFjaykKQEAgLTE3MSw1ICsxODMsMTEgQEAgUmVmZXJyZXJQb2xp
Y3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiAgICAgcmV0dXJu
IFJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOwogfQogCit2b2lkIFdvcmtsZXRHbG9iYWxTY29w
ZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBG
SVhNRTogQWRkIGltcGxlbWVudGF0aW9uLgorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVs
bG9wdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCAyNWQ1NDlhYzRhMGFhNmZm
NzUyODc1NWQ3MDQ3YzgxNGVlN2RjNDA0Li42NDZhZDA2YTE0YTE2MzM4ODk2YWZjODQxMDAzMTg3
M2RiMzc0NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaApAQCAtMjYsMzAgKzI2LDM0IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENT
U19QQUlOVElOR19BUEkpCi0KICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVl
c3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgi
CisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVN
ZXNzYWdlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+Ci0jaW5j
bHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgV29ya2Vy
RXZlbnRMb29wOwotY2xhc3MgV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CisKK3N0cnVjdCBXb3Jr
bGV0UGFyYW1ldGVyczsKIAogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZSB7
IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNsYXNzIFdvcmtsZXRHbG9i
YWxTY29wZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsZXRHbG9iYWxTY29wZT4sIHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7
CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGV0R2xv
YmFsU2NvcGU+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmts
ZXRHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNjb3Bl
KCk7CkBAIC01NywxMSArNjEsMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFdvcmtsZXRHbG9iYWxT
Y29wZXNTZXQgPSBIYXNoU2V0PGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSo+OwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBXb3JrbGV0R2xvYmFsU2NvcGVzU2V0JiBhbGxXb3JrbGV0R2xvYmFs
U2NvcGVzU2V0KCk7CiAKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKICAgICB2aXJ0dWFs
IGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogCiAg
ICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExvb3AoKSBmaW5hbDsKIAotICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2RlLnVybCgpOyB9CisgICAgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQogCiAgICAgdm9pZCBldmFs
dWF0ZSgpOwogCkBAIC03MCw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVk
OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKLSAgICBXb3JrbGV0U2NyaXB0
Q29udHJvbGxlciogc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQuZ2V0KCk7IH0KKyAgICBXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgZmluYWwgeyByZXR1cm4gbV9zY3JpcHQuZ2V0
KCk7IH0KIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYpIGZpbmFsOwogCkBAIC03OSw2ICs4OCwxMCBAQCBwdWJs
aWM6CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIoKSBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CiAKKyAgICAvLyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS4KKyAgICBU
aHJlYWQqIHVuZGVybHlpbmdUaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRy
OyB9CisgICAgYm9vbCBpc0Nsb3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQ2xvc2lu
ZzsgfQorCiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgYm9vbCBpc1NlY3VyZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogCkBAIC04Niw3ICs5OSwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZUZvckRlc3RydWN0aW9uKCk7CiAKKyAgICB2b2lkIGZldGNoQW5kSW52b2tlU2NyaXB0
KGNvbnN0IFVSTCYsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CisgICAgV29ya2xl
dEdsb2JhbFNjb3BlKGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJik7CiAgICAgV29ya2xldEdsb2Jh
bFNjb3BlKERvY3VtZW50JiwgUmVmPEpTQzo6Vk0+JiYsIFNjcmlwdFNvdXJjZUNvZGUmJik7CiAg
ICAgV29ya2xldEdsb2JhbFNjb3BlKGNvbnN0IFdvcmtsZXRHbG9iYWxTY29wZSYpID0gZGVsZXRl
OwogICAgIFdvcmtsZXRHbG9iYWxTY29wZShXb3JrbGV0R2xvYmFsU2NvcGUmJikgPSBkZWxldGU7
CkBAIC0xMzYsOCArMTUyLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9v
cD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4g
bV9kZWZhdWx0VGFza0dyb3VwOwogCisgICAgVVJMIG1fdXJsOwogICAgIEpTQzo6UnVudGltZUZs
YWdzIG1fanNSdW50aW1lRmxhZ3M7Ci0gICAgU2NyaXB0U291cmNlQ29kZSBtX2NvZGU7CisgICAg
T3B0aW9uYWw8U2NyaXB0U291cmNlQ29kZT4gbV9jb2RlOworICAgIGJvb2wgbV9pc0Nsb3Npbmcg
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtMTQ1LDQgKzE2Mywz
IEBAIHByaXZhdGU6CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6Oldvcmts
ZXRHbG9iYWxTY29wZSkKIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzV29ya2xldEdsb2Jh
bFNjb3BlKCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKaW5kZXggZDc1OWYw
Y2UxZDE2Zjg2OTE4NjAxMjc3NmYwZGIxNmI2MWJhYTQ3OC4uYmYwNzEzODRhM2YzMDhmZjZjNjQ1
Yzk1ODRjYjNiMWNiOWU1ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaWRsCkBAIC0yNiw4ICsyNiw2IEBACiBbCiAgICAgQ3VzdG9tUHJveHlU
b0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9V29ya2xldCwKLSAgICBFbmFibGVkQXRSdW50aW1lPUNT
U1BhaW50aW5nQVBJLAotICAgIENvbmRpdGlvbmFsPUNTU19QQUlOVElOR19BUEksCiAgICAgSlNM
ZWdhY3lQYXJlbnQ9SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLAogICAgIEltcGxpY2l0VGhpcywK
ICAgICBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZVByb3h5LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhYzVk
OTFjYzdkMDI0MjBiNWZhZmYyMTkxYzBlZWY4ZmY5YTVkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGVQcm94eS5oCkBAIC0wLDAg
KzEsNDYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV29ya2xldFBlbmRpbmdUYXNrczsKKworY2xhc3MgV29ya2xldEds
b2JhbFNjb3BlUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2xldEdsb2Jh
bFNjb3BlUHJveHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xvYmFsU2NvcGVQ
cm94eSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dv
cmtsZXRHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0
cmluZyYgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0F1ZGlvV29ya2xldE1lc3NhZ2lu
Z1Byb3h5KCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBjNGQw
ZGE3ZTJlMWYxNzVkOGI5ZDhjNjRiM2FhNmJiZmY4MjgzNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw0NiBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnMgeworICAgIFVSTCB3aW5k
b3dVUkw7CisgICAgSlNDOjpSdW50aW1lRmxhZ3MganNSdW50aW1lRmxhZ3M7CisKKyAgICBXb3Jr
bGV0UGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIHdpbmRvd1VSTC5pc29sYXRlZENvcHkoKSwKKyAgICAgICAgICAgIGpz
UnVudGltZUZsYWdzCisgICAgICAgIH07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZmZlNWQ3NjFhZjQ2ZjI2MTQxMTc5MDRhYzEwNGMzMDQ5MTE0NWQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBlbmRpbmdU
YXNrcy5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrbGV0UGVu
ZGluZ1Rhc2tzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2xldFBlbmRpbmdUYXNr
czo6V29ya2xldFBlbmRpbmdUYXNrcyhXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICA6IG1fd29ya2xldChtYWtlV2Vh
a1B0cih3b3JrbGV0KSkKKyAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwg
bV9jb3VudGVyKGNvdW50ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKK30KKwor
dm9pZCBXb3JrbGV0UGVuZGluZ1Rhc2tzOjphYm9ydChFeGNlcHRpb24mJiBleGNlcHRpb24pCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY291bnRlciA9IC0xOworICAgIG1fcHJvbWlzZS5y
ZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICBpZiAobV93b3JrbGV0KQorICAgICAgICBt
X3dvcmtsZXQtPmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7Cit9CisKK3ZvaWQgV29ya2xldFBl
bmRpbmdUYXNrczo6ZGVjcmVtZW50Q291bnRlcigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIGlmIChtX2NvdW50ZXIgPT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAg
IC0tbV9jb3VudGVyOworICAgIGlmICghbV9jb3VudGVyKSB7CisgICAgICAgIG1fcHJvbWlzZS5y
ZXNvbHZlKCk7CisgICAgICAgIGlmIChtX3dvcmtsZXQpCisgICAgICAgICAgICBtX3dvcmtsZXQt
PmZpbmlzaFBlbmRpbmdUYXNrcygqdGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGlu
Z1Rhc2tzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGVuZGluZ1Rhc2tzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzMzZDZiYmFiZTBlOWI5M2UyODNhMzI4NjcxNWNhODlkYzI2YzA5YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQZW5kaW5nVGFz
a3MuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXb3JrbGV0OworCisvLyBodHRwczov
L2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvd29ya2xldHMvI3BlbmRpbmctdGFza3Mtc3RydWN0Citj
bGFzcyBXb3JrbGV0UGVuZGluZ1Rhc2tzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdv
cmtsZXRQZW5kaW5nVGFza3M+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtsZXRQZW5k
aW5nVGFza3M+IGNyZWF0ZShXb3JrbGV0JiB3b3JrbGV0LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlLCBpbnQgY291bnRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdvcmtsZXRQZW5kaW5nVGFza3Mod29ya2xldCwgV1RGTW92ZShwcm9taXNlKSwgY291
bnRlcikpOworICAgIH0KKworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uJiYpOworICAgIHZvaWQg
ZGVjcmVtZW50Q291bnRlcigpOworCitwcml2YXRlOgorICAgIFdvcmtsZXRQZW5kaW5nVGFza3Mo
V29ya2xldCYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmLCBpbnQgY291bnRlcik7CisKKyAg
ICBXZWFrUHRyPFdvcmtsZXQ+IG1fd29ya2xldDsKKyAgICBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4gbV9wcm9taXNlOworICAgIGludCBtX2NvdW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggMjBhNmY4NTYxODU4YWRmYmUyZTJiYzE4ZWJmNzE1MGI5N2FkMTRm
OC4uMTdkZjVlMWYzY2YwNjU3MTRiY2VmNzVlZDg1ZmNhZDUzOGY2ZTgwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAt
MjYsOCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgiCiAKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLQorI2luY2x1
ZGUgIkpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIK
QEAgLTU2LDYgKzU1LDExIEBAIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcihSZWY8Vk0+JiYgdm0sIFdvcmtsZXRHbG9iYWxTY29wCiAgICAgSlNWTUNsaWVu
dERhdGE6OmluaXROb3JtYWxXb3JsZChtX3ZtLmdldCgpKTsKIH0KIAorV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OldvcmtsZXRTY3JpcHRDb250cm9sbGVyKFdvcmtsZXRHbG9iYWxTY29wZSogd29y
a2xldEdsb2JhbFNjb3BlKQorICAgIDogV29ya2xldFNjcmlwdENvbnRyb2xsZXIoVk06OmNyZWF0
ZSgpLCB3b3JrbGV0R2xvYmFsU2NvcGUpCit7Cit9CisKIFdvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojp+V29ya2xldFNjcmlwdENvbnRyb2xsZXIoKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZt
KCkpOwpAQCAtMTQ1LDEwICsxNDksMTkgQEAgdm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
aW5pdFNjcmlwdCgpCiAgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCiAgICAgICAgIHJl
dHVybjsKIAorI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogICAgIGlmIChpczxQYWludFdv
cmtsZXRHbG9iYWxTY29wZT4obV93b3JrbGV0R2xvYmFsU2NvcGUpKSB7CiAgICAgICAgIGluaXRT
Y3JpcHRXaXRoU3ViY2xhc3M8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVByb3RvdHlwZSwgSlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZSwgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAg
aWYgKGlzPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPihtX3dvcmtsZXRHbG9iYWxTY29wZSkpIHsK
KyAgICAgICAgaW5pdFNjcmlwdFdpdGhTdWJjbGFzczxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
UHJvdG90eXBlLCBKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLCBBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZT4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CkBAIC0xOTYsNSArMjA5LDYyIEBAIHZvaWQgV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OnNldEV4Y2VwdGlvbihKU0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uKQogICAgIHRo
cm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOwogfQog
Cit2b2lkIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpyZWxlYXNlSGVhcEFjY2VzcygpCit7Cisg
ICAgbV92bS0+aGVhcC5yZWxlYXNlQWNjZXNzKCk7Cit9CisKK3ZvaWQgV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OmFjcXVpcmVIZWFwQWNjZXNzKCkKK3sKKyAgICBtX3ZtLT5oZWFwLmFjcXVpcmVB
Y2Nlc3MoKTsKK30KKwordm9pZCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6YWRkVGltZXJTZXRO
b3RpZmljYXRpb24oSlNDOjpKU1J1bkxvb3BUaW1lcjo6VGltZXJOb3RpZmljYXRpb25DYWxsYmFj
ayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHByb2Nlc3NUaW1lciA9IFsmXSAoSlNSdW5Mb29wVGlt
ZXIqIHRpbWVyKSB7CisgICAgICAgIGlmICghdGltZXIpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHRpbWVyLT5hZGRUaW1lclNldE5vdGlmaWNhdGlvbihjYWxsYmFjayk7CisgICAgfTsK
KworICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkpOwor
ICAgIHByb2Nlc3NUaW1lcihtX3ZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNrKCkpOworICAg
IHByb2Nlc3NUaW1lcihtX3ZtLT5kZWZlcnJlZFdvcmtUaW1lci5wdHIoKSk7Cit9CisKK3ZvaWQg
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OnJlbW92ZVRpbWVyU2V0Tm90aWZpY2F0aW9uKEpTQzo6
SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2spCit7Cisg
ICAgYXV0byBwcm9jZXNzVGltZXIgPSBbJl0gKEpTUnVuTG9vcFRpbWVyKiB0aW1lcikgeworICAg
ICAgICBpZiAoIXRpbWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aW1lci0+cmVt
b3ZlVGltZXJTZXROb3RpZmljYXRpb24oY2FsbGJhY2spOworICAgIH07CisKKyAgICBwcm9jZXNz
VGltZXIobV92bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGlt
ZXIobV92bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpKTsKKyAgICBwcm9jZXNzVGltZXIo
bV92bS0+ZGVmZXJyZWRXb3JrVGltZXIucHRyKCkpOworfQorCit2b2lkIFdvcmtsZXRTY3JpcHRD
b250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCkKK3sKKyAgICBpZiAobV9p
c1Rlcm1pbmF0aW5nRXhlY3V0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB7CisgICAgICAg
IC8vIFRoZSBtdXRleCBwcm92aWRlcyBhIG1lbW9yeSBiYXJyaWVyIHRvIGVuc3VyZSB0aGF0IG9u
Y2UKKyAgICAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkgd2lsbAorICAgICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBsZXhpY2Fs
R2xvYmFsT2JqZWN0IHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAgICAg
ICBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24gPSB0cnVlOworICAgIH0KKyAgICBtX3ZtLT5ub3Rp
ZnlOZWVkVGVybWluYXRpb24oKTsKK30KKworYm9vbCBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpIGNvbnN0Cit7CisgICAgLy8gU2VlIGNvbW1lbnRzIGlu
IHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdlLgorICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zY2hlZHVsZWRUZXJtaW5hdGlvbkxvY2spOworICAg
IHJldHVybiBtX2lzVGVybWluYXRpbmdFeGVjdXRpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgKaW5kZXggZTM2ZDJhMjQyYmY1NDY0ZmEyN2NmM2RhOWFiNTI4NGYwMDA0
ZDZlZS4uNmQ0M2NlNWY5ZmZkMmE3MGFmMGJmNmU1YWVlNTRjZDhmYWM3MmYyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0y
NSw4ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19B
UEkpCi0KKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpA
QCAtNDYsOSArNDUsMTEgQEAgY2xhc3MgV29ya2xldENvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3Jr
bGV0R2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrbGV0Q29uc29sZUNsaWVudDsKIAotY2xhc3MgV29y
a2xldFNjcmlwdENvbnRyb2xsZXIgeworLy8gRklYTUU6IFdlIHNob3VsZCBzaGFyZSBtb3JlIGNv
ZGUgd2l0aCBXb3JrZXJTY3JpcHRDb250cm9sbGVyLgorY2xhc3MgV29ya2xldFNjcmlwdENvbnRy
b2xsZXIgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV29ya2xldFNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cihXb3JrbGV0R2xvYmFsU2NvcGUqKTsKICAgICBXb3JrbGV0U2NyaXB0Q29udHJvbGxlcihSZWY8
SlNDOjpWTT4mJiwgV29ya2xldEdsb2JhbFNjb3BlKik7CiAgICAgfldvcmtsZXRTY3JpcHRDb250
cm9sbGVyKCk7CiAKQEAgLTY0LDYgKzY1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpc2FibGVXZWJBc3Nl
bWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKKyAgICB2b2lkIHJlbGVhc2VIZWFw
QWNjZXNzKCkgZmluYWw7CisgICAgdm9pZCBhY3F1aXJlSGVhcEFjY2VzcygpIGZpbmFsOworCisg
ICAgdm9pZCBhZGRUaW1lclNldE5vdGlmaWNhdGlvbihKU0M6OkpTUnVuTG9vcFRpbWVyOjpUaW1l
ck5vdGlmaWNhdGlvbkNhbGxiYWNrKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVRpbWVyU2V0Tm90
aWZpY2F0aW9uKEpTQzo6SlNSdW5Mb29wVGltZXI6OlRpbWVyTm90aWZpY2F0aW9uQ2FsbGJhY2sp
IGZpbmFsOworCisgICAgdm9pZCBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCk7CisgICAg
Ym9vbCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGV2
YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmlu
ZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKQEAgLTg3LDcgKzk3LDgg
QEAgcHJpdmF0ZToKICAgICBXb3JrbGV0R2xvYmFsU2NvcGUqIG1fd29ya2xldEdsb2JhbFNjb3Bl
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrbGV0Q29uc29sZUNsaWVudD4gbV9jb25zb2xlQ2xp
ZW50OwogICAgIEpTQzo6U3Ryb25nPEpTV29ya2xldEdsb2JhbFNjb3BlPiBtX3dvcmtsZXRHbG9i
YWxTY29wZVdyYXBwZXI7CisgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25M
b2NrOworICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsgZmFsc2UgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5jcHAKaW5kZXggNmExMDFjMzk1OTNjYzRjMTU0Yzc0NWY2ZDc5NzM3YTAyYTkyM2Y2ZC4uMGI5
YWIxZGNlMzRhNTIwZDgyZTJmYWQ1ZjVkMDZhODY5ZWY3NGQ5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcCgp
OwogICAgIH0KIAotICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0K
KyAgICB2b2lkIHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCh7IH0pOyB9CiAgICAgdm9p
ZCBzdG9wKCkgeyBtX2Rlc3RpbmF0aW9uLT5zdG9wKCk7IH0KICAgICBib29sIGlzUGxheWluZygp
IHsgcmV0dXJuIG1fZGVzdGluYXRpb24tPmlzUGxheWluZygpOyB9CiAgICAgdW5zaWduZWQgZnJh
bWVzUGVyQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+ZnJhbWVzUGVyQnVm
ZmVyKCkgOyB9CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKIAogICAgIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllciBtX2lkOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBt
X2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9u
OwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5n
R3JhY2VmdWxTaHV0ZG93bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cAppbmRleCAwNjk0NWJhZmQ1ZDE4OWM3YTBmOWM3MjQwMmJiODg5ZGM4MDdmNmY0Li44MjEzODAw
YjlmMTBjNTgyNjBlMDdhNzkwZjdjYjIwYTdlMGVhMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCkBAIC00MywxMCArNDMsMTAgQEAgdXNpbmcgQXVkaW9CdXMgPSBXZWJD
b3JlOjpBdWRpb0J1czsKIHVzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uOwogdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxi
YWNrOwogCi1zdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKK1JlZjxBdWRp
b0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLAogICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eT4oY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5w
dXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KGNhbGxiYWNrLCBp
bnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIHNhbXBsZVJhdGUpKTsKIH0KIAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCkBAIC03Nyw4
ICs3Nyw5IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpzdGFydCgpCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQoRnVu
Y3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQp
CiB7CisgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb24obV9kZXN0
aW5hdGlvbklEKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CkBAIC04
OSwxOSArOTAsMzEgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCiAg
ICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlv
RGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7CisgICAgbV9kaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9C
dXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyByZW5kZXJpbmcgb24gdGhlIG1haW4gdGhyZWFkIHdo
ZW4gQXVkaW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUsIHdoaWNoIGlzIGxpa2VseSBub3QgYSBnb29k
IGlkZWEuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNE
YXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVm
ZmVycy5zaXplKCkpOwogICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlv
QnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nl
c3MsIGZhbHNlKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNo
YW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1l
bW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBh
dWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAs
IGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0Rh
dGEub3V0cHV0UG9zaXRpb24pOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBhdXRv
IGRvUmVuZGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9C
dXMgPSBXVEZNb3ZlKGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRp
b25dIHsKKyAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOworICAgIH07CisgICAgaWYgKG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZCkgeworICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVu
ZGVyID0gV1RGTW92ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkb1JlbmRlcigpOworICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvUmVuZGVyKCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmgKaW5kZXggYWRhNmZlZWZmMzc0MzBmM2M0ZGQzN2YxM2M3ZTNhNGU3
NjZhMzlkYS4uOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3ZTE4ZWNmYjVhYTVmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogICAgIHVzaW5nIEF1ZGlvSU9D
YWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKIAotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBz
dGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIH5SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24KLSAgICB2b2lkIHN0YXJ0
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQo
KT4mJik+JiYgZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lz
UGxheWluZzsgfQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3NhbXBsZVJhdGU7IH0KQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2ZyYW1lc1BlckJ1ZmZlciB7IDAgfTsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07
CisgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5k
ZXJUaHJlYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4
IDJlODYxYTFlNGUzMWUxNDc4MmEyYjllODMxOThjMTY3YTU5NDYxMTMuLmQ1YWVmMTUzNGFkMjM2
NWQyMTM3YTE3YjZmNmQ0NGUxZWY4NTE5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtNDUsNyArNDUs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0
ZWd5KCkgPSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLXN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRp
b0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0
cmluZyYgaW5wdXREZXZpY2VJZCwKK1JlZjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJN
ZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxs
YmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICB1bnNpZ25l
ZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApp
bmRleCA4MTdjNGMyOWIxNzMyZjQ1ZjkwZTIxNTVkNjVjZWU4NDdjMTdiZWUyLi42YjdiOWNlNjAz
YTg3MzllNzFkOTA0NzVmY2M3ODcyNjhmNmQ5ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtMzksNyArMzks
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAgIFJlZjxXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
ayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGZhZjkzYjczYTJiMDE0MTAzODA1YTVjYzZiY2E3
YjY1M2E2NTI3YjcuLmViYmIzYmVhNmVkYmI0N2JjYjRlMmQwYjI5N2ZjZDA1ZWJhNjMyOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTY5LDcgKzY5LDcgQEAgUGFzdGVib2Fy
ZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVn
eSgpCiBjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kg
ewogcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0
aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9u
OjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAppbmRleCBkZjRhMWY3ODUwNGRiZTIzMGE5NzdlOTdmZDI1OWQyNGU0ZjkyMDMx
Li5lMDM0MjNkNzUzY2IxOTgwZWUzZWI4ODkyZmEyODUxZWU0OTYyNTJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGFzdGVib2FyZFN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiBjbGFz
cyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewogcHJpdmF0
ZToKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ss
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICBSZWY8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUo
Y2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KaW5kZXggNGQ2M2Y0MGNmZWQ3NzJhNTZjMjU0YzA1MzEwNzMyNWEyZDlh
YjZlMy4uNzQ2MTlkZTQ4ZTYxNDFhZDdkOWJlZDI2YzAxNjdmODFlMTVkOWI0ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODM4LDYgKzgzOCw3IEBA
IHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBw
cmVmZXJlbmNlcykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0
aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NJbmRpdmlk
dWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ6WUVTXTsKKyAgICBbcHJlZmVyZW5jZXMgc2V0
QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVz
dC4KQEAgLTkzMSw3ICs5MzIsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9D
b25zaXN0ZW50VmFsdWVzKCkKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJBdWRpb0VuYWJsZWQ6
WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxl
ZDpZRVNdOwotICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldE1lZGlhU291cmNlRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRTb3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZDpZRVNdOwogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKaW5kZXggMzFhZWMzODJlN2JhM2EzYWJmOWYyNzEy
MmZiODRlMjA1Nzg4MDdjNC4uMWQwOTEzYjRlZjA1OWE0ZTFlNzkwNmM1ZWI0OWRlZGI2NjQ2NDU5
NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQpAQCAtNzIsNyArNzIs
NyBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0
X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogCi0gICAgZGVmIGdlbmVyYXRlX3N1cHBs
ZW1lbnRhbF9kZXBlbmRlbmN5KHNlbGYsIGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2Rl
cGVuZGVuY3lfZmlsZSwgc3VwcGxlbWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2lu
ZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlLCBwYWludHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKKyAgICBkZWYgZ2VuZXJhdGVf
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3koc2VsZiwgaW5wdXRfZGlyZWN0b3J5LCBzdXBwbGVtZW50
YWxfZGVwZW5kZW5jeV9maWxlLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVfZGVwZW5kZW5jeV9maWxl
LCB3aW5kb3dfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgc2Vy
dmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB3b3JrbGV0Z2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9y
c19maWxlLCBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlKToKICAgICAgICAgaWRsX2ZpbGVzX2xpc3QgPSB0
ZW1wZmlsZS5ta3N0ZW1wKCkKICAgICAgICAgZm9yIGlucHV0X2ZpbGUgaW4gb3MubGlzdGRpcihp
bnB1dF9kaXJlY3RvcnkpOgogICAgICAgICAgICAgKG5hbWUsIGV4dGVuc2lvbikgPSBvcy5wYXRo
LnNwbGl0ZXh0KGlucHV0X2ZpbGUpCkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIEJpbmRpbmdzVGVz
dHM6CiAgICAgICAgICAgICAgICAnLS1zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAg
ICAgICAgICAgICAgJy0td29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHdvcmts
ZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwKICAgICAgICAgICAgICAgICctLXBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZScsIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlLAorICAgICAgICAgICAgICAgJy0tYXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlJywgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3Ry
dWN0b3JzX2ZpbGUsCiAgICAgICAgICAgICAgICAnLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlJywgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLAogICAgICAgICAgICAg
ICAgJy0tdmFsaWRhdGVBZ2FpbnN0UGFyc2VyJ10KIApAQCAtMjAxLDYgKzIwMiw3IEBAIGNsYXNz
IEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1
Y3RvcnNfZmlsZW5hbWUgPSAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bCcKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSA9ICdX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsJwogICAgICAgICBwYWludHdvcmtsZXRn
bG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZW5hbWUgPSAnUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnMuaWRsJworICAgICAgICBhdWRpb3dvcmtsZXRnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZW5hbWUgPSAnQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMu
aWRsJwogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lID0gJ0Jp
bmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbCcKIAogICAgICAgICB3b3JrX2RpcmVjdG9y
eSA9IHRlbXBmaWxlLm1rZHRlbXAoKQpAQCAtMjEzLDkgKzIxNSwxMCBAQCBjbGFzcyBCaW5kaW5n
c1Rlc3RzOgogICAgICAgICBzZXJ2aWNld29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2Zp
bGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVzdWx0
cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgc2VydmljZXdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKICAgICAgICAgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNf
ZmlsZW5hbWUpCiAgICAgICAgIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlID0gb3MucGF0aC5qb2luKHdvcmtfZGlyZWN0b3J5IGlmIG5vdCBzZWxmLnJlc2V0X3Jlc3Vs
dHMgZWxzZSBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVj
dG9yc19maWxlbmFtZSkKKyAgICAgICAgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRf
cmVzdWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0Z2xvYmFsc2NvcGVfY29u
c3RydWN0b3JzX2ZpbGVuYW1lKQogICAgICAgICB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3Jz
X2ZpbGUgPSBvcy5wYXRoLmpvaW4od29ya19kaXJlY3RvcnkgaWYgbm90IHNlbGYucmVzZXRfcmVz
dWx0cyBlbHNlIGlucHV0X2RpcmVjdG9yeSwgdGVzdGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19m
aWxlbmFtZSkKIAotICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRl
bmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgc3VwcGxl
bWVudGFsX21ha2VmaWxlX2RlcGVuZGVuY3lfZmlsZSwgd2luZG93X2NvbnN0cnVjdG9yc19maWxl
LCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgZGVkaWNhdGVkd29ya2VyZ2xv
YmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25z
dHJ1Y3RvcnNfZmlsZSwgd29ya2xldGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBwYWlu
dHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSwgdGVzdGdsb2JhbHNjb3BlX2Nv
bnN0cnVjdG9yc19maWxlKToKKyAgICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9zdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeShpbnB1dF9kaXJlY3RvcnksIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUs
IHN1cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsIHdpbmRvd19jb25zdHJ1Y3Rv
cnNfZmlsZSwgd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGRlZGljYXRlZHdv
cmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCBzZXJ2aWNld29ya2VyZ2xvYmFsc2Nv
cGVfY29uc3RydWN0b3JzX2ZpbGUsIHdvcmtsZXRnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgcGFpbnR3b3JrbGV0Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIGF1ZGlvd29ya2xl
dGdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlLCB0ZXN0Z2xvYmFsc2NvcGVfY29uc3RydWN0
b3JzX2ZpbGUpOgogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBhIHN1cHBs
ZW1lbnRhbCBkZXBlbmRlbmN5IGZpbGUuJykKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUod29y
a19kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gLTEKQEAgLTIzNSw2ICsyMzgsOCBAQCBj
bGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBG
YWxzZQogICAgICAgICAgICAgaWYgc2VsZi5kZXRlY3RfZmlsZV9jaGFuZ2VzKCdnbG9iYWxzY29w
ZScsIHdvcmtfZGlyZWN0b3J5LCBpbnB1dF9kaXJlY3RvcnksIHBhaW50d29ya2xldGdsb2JhbHNj
b3BlX2NvbnN0cnVjdG9yc19maWxlbmFtZSk6CiAgICAgICAgICAgICAgICAgYWxsX3Rlc3RzX3Bh
c3NlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLmRldGVjdF9maWxlX2NoYW5nZXMoJ2ds
b2JhbHNjb3BlJywgd29ya19kaXJlY3RvcnksIGlucHV0X2RpcmVjdG9yeSwgYXVkaW93b3JrbGV0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICBhbGxf
dGVzdHNfcGFzc2VkID0gRmFsc2UKICAgICAgICAgICAgIGlmIHNlbGYuZGV0ZWN0X2ZpbGVfY2hh
bmdlcygnZ2xvYmFsc2NvcGUnLCB3b3JrX2RpcmVjdG9yeSwgaW5wdXRfZGlyZWN0b3J5LCB0ZXN0
Z2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGVuYW1lKToKICAgICAgICAgICAgICAgICBhbGxf
dGVzdHNfcGFzc2VkID0gRmFsc2UKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>